1

我有一个带有 4-5 个子视图的 RelativeLayout 的 xml 布局。我想有一个基于这个 xml 布局的自定义 View 类和一个自定义的 onclick 列表。

我尝试通过扩展 RelativeLayout 并将 View 作为成员来使用自定义类。在我的构造函数中,我正在膨胀布局并将其分配给我的 View 成员。但我想让类本身类似于我的膨胀视图对象。(我有什么意义吗!!)

我当前的代码类似于以下:

public class CustomItemView extends RelativeLayout {
  private Context context;
  private View itemView;

  public CustomItemView(Context context) {
    super(context);
    this.context = context;

     LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

      itemView = inflater.inflate(layout, null);                
  }

  public View getView() {
    return itemView;
  }       
}
4

1 回答 1

5

实现它的一种简单方法是在构造函数中扩展FrameLayout并附加膨胀的布局到自己(this):

public class MyView extends FrameLayout {

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.my_view, this);
    }

    // Your view logic here
}

然后您可以以编程方式使用您的全新视图:

MyView myView = new MyView(context);

或者在 XML 布局中:

<packageName.MyView
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
于 2012-11-23T13:35:13.790 回答