我在我的listview中添加一个listview作为标题时遇到了问题(go冗余)。代码正在工作,但是只有第一项出现在标题中。身体看起来很好。
listView = (ListView) findViewById(R.id.default_list_view);
header = (ListView) getLayoutInflater().inflate(R.layout.savings_overview_header_list, null, false);
HeaderAdapter hAdapter = new HeaderAdapter(getLayoutInflater());
hAdapter.addItem("1");
hAdapter.addItem("2");
hAdapter.addItem("3");
header.setAdapter(hAdapter);
for (Policy p : saving.getPolicies()) {
adapter.addItem(p);
}
listView.addHeaderView(header);
listView.setAdapter(adapter);headerView:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/default_list_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"
android:dividerHeight="2px"
android:fadingEdge="none"
android:fitsSystemWindows="true"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:listSelector="@drawable/list_item_background_selected"
>
</ListView>我试过用垂直的ListView包LinearLayout,但那里也没有雪茄:
hAdapter
private static class HeaderAdapter extends BaseAdapter {
private final LayoutInflater inflater;
protected ArrayList<String> data = new ArrayList<String>();
public HeaderAdapter(LayoutInflater inflater) {
this.inflater = inflater;
}
public void addItem(String s) {
data.add(s);
}
public View getView(int position, View convertView, ViewGroup parent) {
final PolicyViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.savings_overview_header_item, parent, false);
holder = new PolicyViewHolder();
holder.header = (TextView) convertView.findViewById(R.id.list_item_header);
holder.subHeader = (TextView) convertView.findViewById(R.id.list_item_subheader);
holder.img = (ImageView) convertView.findViewById(R.id.list_item_img);
convertView.setTag(holder);
} else {
holder = (PolicyViewHolder) convertView.getTag();
}
String s = data.get(position);
holder.header.setText(s);
holder.subHeader.setText(s);
holder.img.setImageResId(R.drawable.test);
return convertView;
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return data.get(position);
}
public long getItemId(int position) {
return position;
}
private static class PolicyViewHolder {
TextView header;
TextView subHeader;
ImageView img;
}
}header_item
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp" >
<ImageView
android:id="@+id/list_item_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_marginLeft="5dp"
android:layout_toLeftOf="@+id/list_item_value"
android:layout_toRightOf="@+id/header_image"
android:orientation="vertical" >
<TextView
android:id="@+id/list_item_header"
style="@style/header_list_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/list_item_subheader"
style="@style/list_header_sub_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="sub header" />
</LinearLayout>
</RelativeLayout>我也尝试过将linearlayout=“垂直”环绕在这一个上。
发布于 2012-01-21 14:10:42
您必须告诉父视图如何堆叠您的项目。对于像LinearLayout这样的父母来说,这是必要的。如果要拥有这样的适配器,则需要有一个父类来包含这些内容,除非它是一个单一视图。
更新
每当您想要处理ListView中的视图时,您都需要创建一个自定义适配器,该适配器将处理您的逻辑实现,并在必要时将该信息传递给视图。
自定义广告器会一点一点地膨胀视图,这可以是动态的.。
发布于 2012-01-22 20:31:07
我怀疑您的问题与Android有关,根本不知道如何处理这个设计所暗示的两个级别的“滚动性”。想想看--如果用户拖着头,Android怎么知道他们是想滚动外部列表还是在标题中滚动列表呢?我记得Romain曾说过将ListViews放在ScrollViews中,这有点毫无意义。
可能发生的情况是,Android使标题足够大,只需显示单个标题列表项,并且它假定用户的任何拖动姿态都应该应用于外部列表。
一般来说,我认为您所描述的设计选择听起来很糟糕,您需要后退一步。
从功能上讲,您希望这个UI做什么?
如果您只是想在一个列表中显示两组内容,那么在您使用的ListAdapter实现中需要解决这个问题。看一看Jeff Sharkey's blog post on his SeparatedListAdapter。
发布于 2012-01-21 14:06:30
制作一个垂直方向的LinearLayout,并在那里添加两个ListViews。这应该能治好你的打嗝。干杯。
https://stackoverflow.com/questions/8953542
复制相似问题