android - 在 onCreateView 中向 listFragment 添加静态 header

标签 android android-layout

如何将简单的静态 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/

相关文章:

单击时的Android ListView

android - 在 Facebook 墙上发布内容而不在 Android 上显示对话框

java - Android 中存储整数

android - 如何让按钮适合屏幕?

java - 如何优化动画?

java - 安卓开发: Directing to specific tabs in fragment

android - 使用合并标记时,复合 View 不可见

android - 找不到与给定名称匹配的资源 : attr 'colorBackground'

android - android studio中layout和layout v17的区别

android - 如何布局文本以围绕图像流动