gpt4 book ai didi

java - 自定义线性布局

转载 作者:行者123 更新时间:2023-12-02 07:03:18 25 4
gpt4 key购买 nike

我正在尝试制作自己的 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 文件中添加了命名空间,在其中使用自定义 View ,并在 View 类中添加了一个带有属性集的新构造函数。现在应用程序启动。但它只显示我的自定义 View ,布局的其余部分是白色的?

最佳答案

在布局 XML 文件中,可能有如下内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_header"
... />

尝试将其更改为

<?xml version="1.0" encoding="utf-8"?>
<com.client.views.Breadcrump
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_header"
... />

编辑:如何在您的 Activity 中使用它?

如果您的 XML 布局文件名为 main.xml,则只需在 onCreate() 中调用 setContentView(R.layout.main) > 您的 Activity 方法。您的 Breadcrump 在内部初始化。然后您可以使用 (Breadcrump)view.findViewById(R.id.ll_header) 获取对其的引用。

关于java - 自定义线性布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com