我正在尝试创建一些 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/