我想创建一个一次显示 5 行的列表视图。它应该有比其他行更大的文本可见的中间行。第 2 行和第 4 行可见,但文本小于中间行,第 1 行和第 5 行再次可见,但文本较小。所以 listview 看起来像一个轮子在运行..
Listview 提供了很多列表值。
我试过但无法达到类似这样的效果:
我想创建一个一次显示 5 行的列表视图。它应该有比其他行更大的文本可见的中间行。第 2 行和第 4 行可见,但文本小于中间行,第 1 行和第 5 行再次可见,但文本较小。所以 listview 看起来像一个轮子在运行..
Listview 提供了很多列表值。
我试过但无法达到类似这样的效果:
由于您想根据您的情况在每一行中有所不同,因此您必须首先抓住您在列表项中获得的行的位置。之后,您必须在该列表项中放入您想要的布局设计或数据。
如果您愿意,您也可以从代码中更改布局设计组件,因为您只是想增加 textview 的大小。所以首先通过以下方式获取列表项的位置:
getItemViewType(int position) - returns information which layout type you should use based on position
之后,只需通过以下方式增加 texview 的大小:tvYourTextView.setSize("Your text size");
查看详细信息:HowTo:ListView、Adapter、getView 和不同列表项在一个 ListView 中的布局
快乐编码!!!
尝试这个。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
convertView = layoutInflator.inflate(R.layout.customlistview_xml,
null);
TextView head = (TextView) convertView.findViewById(R.id.header);
if (position % 2 == 0) {
// you can vary these and check..
head.setTextSize(float value);
} if(position % 3 == 0) {
head.setTextSize(float value);
}
else {
head.setTextSize( normal float value);
}
Itemclass attach = new Itemclass();
attach = structure.get(position);
head.setText(attach.name);
}
return convertView;
为此使用自定义列表视图...并在 getView 方法中设置文本的大小。
例如..
public View getView(int position, View convertView, ViewGroup parent) {
View = convertView;
view = layoutInflator.inflate(R.layout.listrow,null);
TextView tv =(TextView) view.findViewById(R.id.tv);
if(position==0){
tv.setTextSize(your text size here);
}
tv.setText("text");
return view;
}