안드로이드 개발 질문/답변
(글 수 45,052)
우선 버튼을 동적으로 할당하려는데요..
리니어레이아웃에 마진값을 줘서 버튼을 만드려고 하거든요??
근데 문제가
첫번째 버튼은 마진값이 정상적으로 들어가는데, 두번째 버튼부터는 이상합니다.
예를들어서 첫번째 버튼에 마진값 (left 50)을 주고 싶다 가정하면.. 제대로 갑니다.
근데 두번째 버튼에 마진값(left 30)을 주려고 하면 80으로 줘버립니다..
보니까 리니어레이아웃에 마진값이 계속 누적이 되버리는 것 같은데.. 이걸 해결할 수 있는거 없나여??
혼자 책만보고 독학중이라 알수가 없네여 ㅠㅠ
알려주세요 ㅠㅠ
2012.05.05 12:12:01
Button btn[] = new Button[10];
Button ok;
ok=(Button)findViewById(R.id.chk);
ok.setOnClickListener(new OnClickListener(){
public void onClick(View v){
btn[i]=new Button(Test1Activity.this);
btn[i].setText(str); //대충 문자로 바꿔주심 될듯여..
btn[i].setPadding(0, 0, 0, 0);
btn[i].setBackgroundColor(Color.BLUE);
setLLParams(btn[i], 76,70);
tableview.addView(btn[i], parambtn[i]);
i++;
}
}
Button ok;
ok=(Button)findViewById(R.id.chk);
ok.setOnClickListener(new OnClickListener(){
public void onClick(View v){
btn[i]=new Button(Test1Activity.this);
btn[i].setText(str); //대충 문자로 바꿔주심 될듯여..
btn[i].setPadding(0, 0, 0, 0);
btn[i].setBackgroundColor(Color.BLUE);
setLLParams(btn[i], 76,70);
tableview.addView(btn[i], parambtn[i]);
i++;
}
}
private static void setLLParams(View view, int width, int height) {
LinearLayout.LayoutParams tram = new LinearLayout.LayoutParams(width,
height);
tram.setMargins(50, 0, 0, 0);
view.setLayoutParams(tram);
}
LinearLayout.LayoutParams tram = new LinearLayout.LayoutParams(width,
height);
tram.setMargins(50, 0, 0, 0);
view.setLayoutParams(tram);
}
대충 자바소스가 이렇게 되는데요..
설명이 어렵네요..
그러니까 버튼을 2개 만들건데,
setmargins()로 마진을 넣어주잖아요
근데 여기서 첫번째 버튼은 마진값이 정상으로 들어가여.. 근데 두번째 버튼을 만들때는 첫번째 마진값+두번째마진값이 되어서
제가 원하던 곳에 버튼이 위치하는게 아니고, 이상한 곳에서 생성되어버리네요..
테이블뷰에 마진값이 아예 누적되어버리는거 같은데.. 어떻게 해야할지 모르겠습니다..
아 이렇게 써도 무슨 말인지 이해가 가실지 모르겠네여;;




이미지랑 레이아웃 소스도 같이보여시면...