我有一个xml
布局,当它膨胀到View
对象时,布局会按预期显示。但是,我创建了一个自定义LinearLayout
类,并在使用
xml
布局
LayoutInflater.from(context).inflate(R.layout.icon_item, this, true);
在构造函数中。我没有在自定义LayoutParams
类上设置任何LinearLayout
或任何内容,当我尝试显示自定义类时,似乎有一些奇怪的边距会切断布局中的一些文本内部。
我想知道是否有任何方法可以设置自定义LinearLayout
,因此它对布局xml没有影响,但只是作为一个不可见的容器。我认为在充气时将“attachToRoot”设置为true会解决这个问题,但是没有按预期工作。
答案 0 :(得分:0)
将inflate(..)
与attachToRoot = true一起使用时,这相当于将XML物理放置在ViewGroup中,如下所示:
<LinearLayout ..>
<TextView .. />
</LinearLayout>
同样意味着当measure
'由LinearLayout
布局时,它将继承您正在膨胀的xml布局中强加的任何布局属性。
因此,如果您<TextView..>
包含android:layout_margin="8dp"
或padding
,那么您的CustomLinearLayout
也会使用这些Layout
属性布局视图。
如果您希望我为您修复/创建更好的解决方案,我会发布更多代码。