스마트기기개발관련/안드로이드 개발

안드로이드 코드,xml로 레이아웃 구성시 setGravity(Gravity.BOTTOM)으로 여러개로 구성하려할때 가운데 레이아웃이 일부분이 안나올때....

AlrepondTech 2013. 4. 1. 13:52
반응형


출처: 202psj.tistory.com //여기





레이아웃을 bottom으로 구성시 위 그림처럼 리스트 레이아웃 부분 가운데 일부분의 영역이 잘못 정해질 수 있다.

이 부분을 해결하기 위해 잘못된 영역의 크기 만큼 margin 마진 값을 더해주면 해결할수 있다. 

마진값은 가운데 리스트 아래 레이아웃의 크기 만큼 설정해주면 가운데 리스트 부분이 씹히지 않고 

깔끔하게 나올수 있다.


LayoutParams param = null;

this.setBackgroundColor(0xFFD1D1D1);

setOrientation(VERTICAL);

setBackgroundColor(0xffffff00);

setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,   LinearLayout.LayoutParams.FILL_PARENT));

setGravity(Gravity.BOTTOM);


LinearLayout.LayoutParams par = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);

par.topMargin = 48; //안나오는 길이만큼 설정, 대부분 다른 레이아웃 길이에 영향을 받으므로 그 레이아웃의 길이를

                            //더해주면 깔끔하게 나온다.

_list = new CMyGiboList(context);

_list.setLayoutParams(par);

_list.SetListClickListener(new OnItemClickListener()

{

});

this.addView(_list);  //현재 레이아웃에 추가

_cmdBar = new CMyGiboCmdBar(context);

_cmdBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 48));

this.addView(_cmdBar); //현재 레이아웃에 추가

//리스트 추가부분

_list.AddList(1, "123-123", "123", "asdasd", "qweqwe");

_list.AddList(2, "223-123", "123", "asdasd", "qweqwe");

_list.AddList(3, "323-123", "123", "asdasd", "qweqwe");

_list.AddList(4, "423-123", "123", "asdasd", "qweqwe");

_list.AddList(1, "523-123", "123", "asdasd", "qweqwe");

_list.AddList(2, "623-123", "123", "asdasd", "qweqwe");


*아래와 같이 씹히지 않고 깔끔하게 나오는 것을 볼 수가 있다.*


또한 xml 에서도 구성시 가운데 레이아웃이 일부분 안나오는 부분이 있으면 마진 margin을 사용하여

안나오는 일부분의 레이아웃을 보정할 수 있다.




반응형