Android中的XML布局自定义视图

dbr*_*der 8 layout android view

我有一个ListAdapter,它有很多不同的行布局.要拥有一个干净的代码,我想从View类中的适配器的getView()外包行的布局.是否可以将XML布局扩展为自定义视图?我只找到了LayoutInflater,但它返回了一个View,但没有帮助.我想要一个类似于Activity的setLayout()的东西.这可能吗?

谢谢!

Mat*_*lis 28

您可以拥有自定义行视图并在其构造函数中为您的xml充气:

public MyRow extends LinearLayout {
    public MyRow(Context context) {
        super(context);
        LayoutInflater.from(context).inflate(R.layout.my_row, this, true);
          ... other initialization ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后用mergemy_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
  ... your row layout ...
</merge>
Run Code Online (Sandbox Code Playgroud)

merge元素会将其子项添加为自定义视图的子项.查看合并布局了解更多信息.