3

xml 레이아웃은 View 오브젝트로 부풀려지면 레이아웃이 예상대로 표시됩니다. 그러나, 나는 사용자 정의 LinearLayout 클래스를 생성하고 생성자에서Android Custom LinearLayout and inflating xml

LayoutInflater.from(context).inflate(R.layout.icon_item, this, true); 

를 사용하여 클래스의 인스턴스를 생성 할 때 xml 레이아웃을 부풀려. 어떤 LayoutParams 또는 아무것도 사용자 정의 LinearLayout 클래스에 설정하지 오전 및 사용자 지정 클래스를 표시 할 때 몇 가지 이상한 여백을 레이아웃 안에 텍스트 일부를 잘라 놓은 것 같습니다.

사용자 정의 LinearLayout을 설정하는 방법이 있는지 알고 싶어서 레이아웃 xml에 영향을주지 않지만 보이지 않는 컨테이너 역할을합니다. 나는 "attachToRoot"를 true로 설정하는 것이 팽창 할 때 이것을 해결할 것이라고 생각했지만 예상대로 작동하지 않았습니다.

+3

문제가 있거나 더 나은 이미지가있는 이미지는 매우 유용합니다. – Luksprog

답변

0

attachToRoot = TRUE로 inflate(..)를 사용하여이 물리적으로 그렇게 같은 뷰 그룹 내부 XML을 배치하는 것과 동일하다 :

<LinearLayout ..> 
    <TextView .. /> 
</LinearLayout> 

은 또한 의미하는 measure 인 경우 'D와 LinearLayout는 의지 뻗어 팽창중인 xml 레이아웃에 부과 된 모든 레이아웃 특성을 상속합니다.

그래서 당신은 <TextView..> 예를 들어 android:layout_margin="8dp" 또는 padding 포함 된 경우 다음 CustomLinearLayout 이러한 Layout 속성을 사용하여 뷰를 레이아웃합니다.

더 나은 해결책을 고치거나 만들려는 경우 더 많은 코드를 게시 할 것입니다.