gpt4 book ai didi

android - 添加 fragment 作为 ListView header

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:45 24 4
gpt4 key购买 nike

我的目标是针对 API 15 和最低 8 的 Android 应用程序。因此我使用支持库来管理 fragment 。我有一组在应用程序的多个部分中使用的 fragment 。

现在,在一个 Activity 中,我在布局中有一个 ListView:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/listOfEvents"
android:layout_width="match_parent" android:layout_height="match_parent">
</ListView>

我想在 ListView header 中添加我的 fragment 。我试过这个:

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_open);

listOfEvents = (ListView) findViewById(R.id.listOfEvents);

Fragment fragment = new SortingStandardFragment();
getSupportFragmentManager()
.beginTransaction()
.add(fragment, null)
.commit();

View fragmentView = fragment.getView(); // problem: fragment is null!
listOfEvents.addHeaderView(fragmentView);
}

但是我得到一个错误,因为 fragment.getView() 返回 null(api 引用文档说我必须在添加调用中放置一个 GroupView Id,但是我应该将 GroupView 放在布局中的什么位置?还有其他方法可以达到目标吗?

最佳答案

我通过创建一个新布局解决了这个问题,该布局仅包含列表标题中我需要的 fragment :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<fragment
android:id="@+id/myFragmentEmbedded"
android:name=".SortingStandardFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>

在 Activity 代码中:

LayoutInflater inflater = getLayoutInflater();
header = inflater.inflate(R.layout.myLayout, null);
listOfEvents.addHeaderView(header);

SortingStandardFragmenttitleFragment = (SortingStandardFragment)
getSupportFragmentManager()
.findFragmentById(R.id.myFragmentEmbedded);

关于android - 添加 fragment 作为 ListView header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630567/

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