我正在尝试制作自己的 LinearLayout 以使其可重用和模块化。首先我的代码看起来像这样,效果很好:
mLlHeader = (LinearLayout)view.findViewById(R.id.ll_header);
mTvCrump = new TextView(mContext);
mTvCrump.setText("> "+((Item) mNavigationHistory.get(mNavigationHistory.size()-1)).getName());
mTvCrump.setId(mNavigationHistory.size()-1);
mTvCrump.setClickable(true);
mTvCrump.setOnClickListener(mBreadcrumpListener);
mBreadcrump.add(mTvCrump);
mLlHeader.addView(mTvCrump,mNavigationHistory.size()-1);
现在我想像这样制作自己的 LinearLayout 类:
public class Breadcrump extends LinearLayout {
private List<? super Item> mNavigationHistory = new ArrayList<Item>();
private List<TextView> mElements = new ArrayList<TextView>();
public Breadcrump(Context context) {
super(context);
}
public Breadcrump(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void addElement (String name) {
}
}
我的 xml 看起来像这样:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/cell_selected"
android:gravity="left"
android:orientation="vertical"
android:padding="5dp" >
<com.client.views.Breadcrump
android:id="@+id/ll_breadcrump"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
</LinearLayout>
并像这样使用它:
mLlHeader = (Breadcrump)view.findViewById(R.id.ll_breadcrump);
....
编辑
我现在在布局 xml 文件中添加了命名空间,在该文件中我使用了我的自定义视图和带有属性集的视图类中的新构造函数。现在应用程序启动。但它只显示我的自定义视图,其余的布局是白色的?