如何将简单的静态 header 添加到 listFragment 中的 ListView ?我想从 xml def 创建 header 并通过 inflation 添加它。
我的 onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View detailList = inflater.inflate(R.layout.detail_fragment, container, false);
View detailListHeader = inflater.inflate(R.layout.daily_sales_header, null, false);
container.addView(detailListHeader, 0);
return detailList;
}
这会创建标题,但它不在 ListView 上方,而是 ListView 显示在标题下方,即标题覆盖 ListView 。
关于正确实现的任何提示?
最佳答案
将 hackbod 的描述放入代码中,因为他的回答在答案出现之前产生了更多问题。有时我只想吃鱼。我并不总是需要知道网是如何制作的...
首先,创建一个如下所示的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myListViewWithHeader"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp"
android:textStyle="bold"
android:textSize="20sp" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
然后,在您的 onCreateView 方法中执行此操作:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.myListViewWithHeader, null);
return view;
}
现在可以通过执行以下操作来填充 header :
// get the header view
TextView headerView = (TextView) getView().findViewById(R.id.header);
headerView.setText("Header text goes here");
请注意,我的 header 是一个 TextView,但如果您愿意,可以将其替换为另一个 View 。在这种情况下,您需要为要使用的 header 内的每个 View 执行 getView().findViewById(R.id.xxxxx)
关于android - 在 onCreateView 中向 listFragment 添加静态 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500408/