【问题标题】:Android Custom LinearLayout and inflating xmlAndroid自定义LinearLayout和膨胀xml
【发布时间】:2012-08-27 08:18:33
【问题描述】:

我有一个xml 布局,当它膨胀到View 对象中时,布局会按预期显示。但是,我创建了一个自定义 LinearLayout 类,并在使用

创建该类的实例时扩展了 xml 布局
LayoutInflater.from(context).inflate(R.layout.icon_item, this, true);

在构造函数中。我没有在自定义 LinearLayout 类上设置任何 LayoutParams 或任何内容,当我尝试显示自定义类时,似乎放置了一些奇怪的边距,切断了内部布局中的一些文本。

我想知道是否有任何方法可以设置自定义LinearLayout,因此它对布局 xml 没有影响,而只是充当一个不可见的容器。我认为在充气时将“attachToRoot”设置为 true 可以解决这个问题,但没有按预期工作。

【问题讨论】:

  • 一张有问题的图片,或者更好的是,一些代码会很有帮助。

标签: android android-linearlayout android-custom-view layout-inflater


【解决方案1】:

当使用 inflate(..) 和 attachToRoot = true 时,这相当于将 XML 物理放置在 ViewGroup 中,如下所示:

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

也意味着当measure'd 并由LinearLayout 布局时,它将继承您正在膨胀的 xml 布局中强加的任何布局属性。

因此,例如,如果您的 &lt;TextView..&gt; 包含 android:layout_margin="8dp"padding,那么您的 CustomLinearLayout 也将使用这些 Layout 属性来布局视图。

如果您希望我为您修复/创建更好的解决方案,我会发布更多代码。

【讨论】:

    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多