- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在AndroidStudio中,我选择“新建-> fragment -> fragment (列表)”来创建项目列表。它工作正常并显示所有项目;但是,我想在顶部有一个标题。
如果我将另一个 TextView 添加到“fragment_item_list.xml”文件中,则标题会出现在列表中的所有项目中。从其他问题中我发现,如果我创建另一个 LinearLayout xml 布局文件(类似于“list_header.xml”)并在其中放入 TextView,我可以使用布局充气器在 fragment Activity 中充气该布局,例如在onCreateView
中,
View header = inflater.inflate(R.layout.list_header,container,false);
但是我不知道如何处理 header
才能使其显示在 fragment 中的某个位置。我可以通过调用 container.addView(header);
将其添加到原始 Activity 中,但是如何将其添加到 fragment 中?
我不想更改 ActionBar 标题,首先只是为了美观,其次是因为 fragment 覆盖了它。理想情况下,应该有一个像警报对话框一样的标题。
最佳答案
让我试着理解你。您想要将标题添加到 fragment 列表(如标题),而不是添加到 ActionBar 中。对吗?
查看fragment_item_list.xml,我们有这个:(我按照您的步骤操作:“新建-> fragment -> fragment (列表)”)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:layoutManager="LinearLayoutManager"
tools:listitem="@layout/fragment_item" />
RecyclerView是一个用于填充列表的容器,换句话说,RecyclerView(或ListView)仅包含所有列表。因此,您必须添加另一个容器(如 LinearLayout、RelativeLayout 等)作为布局的根,以向布局添加更多 View 。使用 LinearLayout 的示例:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World! I'm a header!"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:name="com.veroapps.myapplication.ItemFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:layoutManager="LinearLayoutManager"
tools:listitem="@layout/fragment_item" />
</LinearLayout>
这样您将得到一个顶部有标题的列表。现在,您可以在ItemFragment(Android Studio生成的 fragment 的名称)中管理标题TextView。当然,还有更多方法可以做到这一点,但这是一种简单的方法。
希望这对您有帮助。
关于java - 如何在 Android 中为 fragment 添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457025/
我是一名优秀的程序员,十分优秀!