小编Eve*_*ett的帖子

如何在另一个自定义视图中添加自定义视图?

我正在尝试将CustomViewBeta(一个扩展的RelativeLayout)添加到CustomViewAlpha(扩展的LinearLayout) - 这个想法是CustomViewAlpha将一堆CustomViewBetas保存为ListView.无论我尝试什么,它都行不通.我没有看到任何东西 - 没有CustomViewBetas,或者当我在CustomViewBeta中的一个TextViews上尝试setText时它给了我一个NPE

CustomViewAlpha工作正常,因为它在Fragment的XML中是硬编码的:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
   ...>
    <com.path.CustomViewAlpha
        android:id="@+id/customviewalpha"
        android:orientation="vertical"
        android:layout_gravity="center_vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

代码是:

public class CustomViewAlpha extends LinearLayout {
private Context mContext;

public CustomViewAlpha (Context context) {
    super(context);
    this.mContext = context;
}

public CustomViewAlpha (Context context, AttributeSet attrs) {
    super(context, attrs);
    this.mContext = context;
}

public CustomViewAlpha (Context context, AttributeSet attrs, int defStyle){
    super(context, attrs,defStyle);
    this.mContext = context;
}

public void addCustomViewBeta(String someString){
    CustomViewBeta customViewBeta = new CustomViewBeta(mContext);
    addView(customViewBeta);
}
Run Code Online (Sandbox Code Playgroud)

CustomViewBeta在Fragment的XML中没有硬编码,并且以编程方式添加:

公共类CustomViewBeta扩展RelativeLayout {private Context …

xml android android-layout

5
推荐指数
1
解决办法
2419
查看次数

标签 统计

android ×1

android-layout ×1

xml ×1