android - 从 xml 包装一个 LinearLayout

标签 android

我正在尝试创建一些 Android View 类(它们只是 XML 文件中定义的布局的包装器)。这是正确的吗:

public class MyViewWrapper extends LinearLayout {
    private TextView mTextView;

    public MyViewWrapper(Context context) {
        super(context);
    }

    public constructUI() {
        LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.myview, this);

        mTextView = (TextView)findViewById(R.id.myview_textview);
    }
}

所以我的想法就是我可以像那样构造我的 View ,并且它们内部有用于修改它们的 subview 等的逻辑。布局看起来像:

<LinearLayout>
   <TextView />
</LinearLayout>

看起来我要得到一个额外的不必要的 LinearLayout。包装类本身是一个 LinearLayout,然后它将附加 xml 文件中的内部 LinearLayout。

可以吗?

谢谢

最佳答案

您可以尝试更换 <LinearLayout>在您的布局文件中使用 <merge> .我最近没有尝试过,我想我上次尝试时遇到了问题,但理论上它应该可以达到目的。 <merge>基本上意味着“带走我所有的 child ,将他们直接放入我正在充气的任何容器中”。

关于android - 从 xml 包装一个 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1857795/

相关文章:

Android:如何告诉 ShrinkResources 保留某些资源

java - 如何去除不同 Activity 中的重复代码?

android - 在简洁架构中结合用例/交互器

java - 获取 TextView 的高度

android - SQLiteOpenHelper android中变量的可见性

Android EditText 以编程方式调整大小

android - gradle 构建时出现问题复制到 APK META-INF/LICENSE 中的重复文件

android - 如何在android中的proguard中将公共(public)接口(interface)保留在类中

android - RadioGroup 没有在 ListView 中保持正确的状态

android - 是否可以使用 MPAndroidChart 创建多色(堆叠)条形图?