我正在使用ListView作为ListFragment的一部分.我想添加一个具有特定/自定义高度的标题,但是我在标题视图的高度放置并不重要,它总是具有相同的高度.是否可以修改ListView的标题视图高度?
在我使用的代码下面:
header.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp" />
Run Code Online (Sandbox Code Playgroud)
ListFragment
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
TextView fakeHeader = (TextView)getActivity().getLayoutInflater().inflate(R.layout.header, null);
getListView().addHeaderView(fakeHeader);
}
Run Code Online (Sandbox Code Playgroud) 我正在向ListFragment添加标题,但标题不会出现.我尝试添加onCreate和onStart,但我已经设置了我的适配器.我在这里找到了在ListFragment中添加Header视图的最佳位置,但它无效.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.header,
null);
container.addView(v,0);
rla = new RowListAdapter(getActivity().getLayoutInflater(),
R.layout.itemlayout, rl);
setListAdapter(rla);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
getListView().setBackgroundResource(R.color.tostadoclaro);
getListView()
.setDivider(getResources().getDrawable(R.drawable.divider));
getListView().setDividerHeight(4);
}
Run Code Online (Sandbox Code Playgroud)
解!!!
@Override
public void onActivityCreated(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.header,
null);
this.getListView().addHeaderView(v);
rla = new RowListAdapter(getActivity().getLayoutInflater(),
R.layout.itemlayout, rl);
setListAdapter(rla);
super.onActivityCreated(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){// Empty. Use original.}
Run Code Online (Sandbox Code Playgroud) 如何在片段顶部添加textview.我使用以下适配器填充listfragment,xml文件是列表片段中的每一行.我需要在listview上添加一个textview,它必须与列表一起滚动吗?
public class Adapter extends BaseAdapter {
Context context;
public TextView txtName;
public TextView txtTitle;
private LayoutInflater mInflater;
private Storage storage;
FontManager fontManager;
Typeface typeface;
public Adapter(Context _context,Storage _storage) {
context = _context;
mInflater = LayoutInflater.from(context);
this.storage = _storage;
fontManager = new FontManager(_context);
typeface = fontManager.getTypeFace();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return _storage.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) { …Run Code Online (Sandbox Code Playgroud) 我有两个由tabhost管理的ListFragments.我在标签之间切换的时间都很好.headerView已正确添加.我第二次在片段之间切换我得到这个execption:
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at android.widget.ListView.addHeaderView(ListView.java:261)
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at android.widget.ListView.addHeaderView(ListView.java:284)
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at it.chiesacattolica.archive.ArchiveFragment.onActivityCreated(ArchiveFragment.java:199)
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:858)
10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1183)
Run Code Online (Sandbox Code Playgroud)
和应用程序崩溃.我用来添加标题视图的代码如下:
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
getListView().setOnScrollListener(this);
getListView().addHeaderView(searchBox);
setListAdapter(mAdapter);
}
Run Code Online (Sandbox Code Playgroud)
怎么了 ?提前致谢