gpt4 book ai didi

java - 在 ListFragment 的适配器显示的列表前添加自定义布局

转载 作者:太空狗 更新时间:2023-10-29 16:35:41 26 4
gpt4 key购买 nike

我有一个显示列表的 ListFragment。都好。我想在列表前面放一些格式良好的 TextView 。
我尝试使用 TextView 创建线性布局并将其作为标题添加到列表中,但它不起作用。
以下确实有效:

TextView tv = new TextView(getActivity());
tv.setText(“Some title with comments”);
getListView().addHeaderView(tv);
tv.setGravity(Gravity.LEFT);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);

我在列表之前得到文本,但我想实际设置一个布局,因为我想要具有 2 种不同字体的文本(它就像一个大字体的标题/说明和一个小字体的小描述)。< br/>我该怎么做?
我没有定义 ListView 的任何布局。我只有一个 ListFragment 和我的自定义 listAdapter

更新:
我也试过但没有用:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
this.headerView = inflater.inflate(R.layout.my_list_header, container, false);
return super.onCreateView(inflater, container, savedInstanceState);
}

稍后在设置适配器时:
getListView().addHeaderView(this.headerView);
但我有异常(exception)

最佳答案

以下是在 ListFragment 中正确添加 header 的步骤:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View list_root = inflater.inflate(R.layout.fragment_list, null);
// Get the list header - to be added later in the lifecycle
// during onActivityCreated()
mheaderView = inflater.inflate(R.layout.my_list_header, null);
return list_root;

}


@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (mheaderView != null) this.getListView().addHeaderView(headerView);
// Don't forget to now call setListAdapter()
this.setListAdapter(listAdapter);
}

@Override
public void onDestroyView()
{
super.onDestroyView();

// free adapter
setListAdapter(null);
}

关于java - 在 ListFragment 的适配器显示的列表前添加自定义布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692661/

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