gpt4 book ai didi

Android - ListView 中的页眉消失了吗?

转载 作者:行者123 更新时间:2023-11-29 22:20:03 24 4
gpt4 key购买 nike

我最近遇到了一个非常奇怪的错误...而且根本不知道该怎么办...

我有一个“Tabbed-Fragment-Activity”,这意味着我需要在底部有一个 tabhost,所以我使用了谷歌的 API 示例,它通过 TabHost(和管理器)管理 fragment 几乎每个选项卡实际上都是一个 ListFragment,我在“OnActivityCreated”处为每个选项卡添加了一个标题。

现在奇怪的是:当我第一次移动到一个选项卡 (ListFragment) 时,我可以看到标题,但是一旦我离开该选项卡然后再回到它,标题就不见了!!!

这是我正在使用的代码:

private boolean initialized = false;
private TextView m_Header = null;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

String listTitle = "HELLO HUMAN"
if(m_Header == null && !Helpers.isNullOrBlank(listTitle))
{
m_Header = (TextView)inflater.inflate(R.layout.newslist_header, null, false);
m_Header.setText(listTitle);
}


return super.onCreateView(inflater, container, savedInstanceState);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(!initialized)
{
ListView list = getListView();
if(m_Header != null)
{
list.addHeaderView(m_Header);
}

this.m_adapter = new SomeAdapter();
setListAdapter(this.m_adapter);
registerForContextMenu(list);
this.initialized = true;
}

}

我正在使用这个“已初始化” bool 值来避免每次加载 fragment 时都调用“setListAdapter”/“addHeader”(否则你会得到一个讨厌的异常,说你不能在设置适配器后添加标题... )

Errr...我对这一点一无所知...

请帮忙:)

最佳答案

BaseAdapter 中使用 View 类型系统。使用 addHeaderView() 包装您的适配器并增加您不需要的单个 View 不必要的复杂性。 getItemViewType(int) 方法让您可以根据适配器内的位置区分View 类型。在您的 getView() 方法中,您可以检查该位置是否用于标题。例如:

public class YourAdapter extends BaseAdapter {
private static final int HEADER = 0;
private static final int CELL = 1;

@Override public int getItemViewType(int position) {
if (position == 0) {
return HEADER;
}
return CELL;
}

@Override public int getViewTypeCount() {
return 2;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (getItemViewType(position) == HEADER) {
// do header stuff...
return yourHeaderView;
}

// do non header stuff...
return yourNonHeaderView;
}
}

关于Android - ListView 中的页眉消失了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7466985/

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