728x90
반응형
제목 : View 동적으로 addView() 하고 마진 적용 하는 방법
안드로이드 공부를 하면서 앱을 만들고 있는데 동적으로 View를 추가 한 후 실행을 해보니 마진이 제대로 적용되지 않는 버그가 있었다 알고보니 addView()를 하고 다시 마진을 적용해줘야 한다고 한다.
일단 마진을 적용할 사이즈를 dimens.xml에 미리 정의해야한다. 코드상 20이 20dp가 아니기 때문이라고 한다
for(WordsItem item : listItem) {
View v = View.inflate(requireContext(), R.layout.words_items, null);
LinearLayout words_items_linear_layout = (LinearLayout) v.findViewById(R.id.words_items_linear_layout); // 뷰들을 넣을 리니어 레이아웃
//~~~~
linearLayout.addView(v); // add
int size = getResources().getDimensionPixelSize(R.dimen.words_margin); // 미리 정의한 dp 사이즈를 불러옴
// 아래부분이 추가할 코드
ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(words_items_linear_layout.getLayoutParams());
margin.setMargins(0, size, 0, size);
words_items_linear_layout.setLayoutParams(new LinearLayout.LayoutParams(margin));
}
왼쪽이 코드를 추가하기 전 오른쪽이 코드를 추가 한 후
https://neoroid.tistory.com/42
https://realjune.tistory.com/17
728x90
반응형