在每行上创建具有不同文本大小的Listview

时间:2013-11-21 09:42:09

标签: android listview listview-adapter

我想创建一个一次显示5行的列表视图。它应该有中间行可见,文本比其他行更大。第2行和第4行可见但文本小于中间行,第1行和第5行可见,文本较小。所以listview看起来像一个轮子运行..

Listview提供了大量列表值。

我试过但不能达到类似的效果:

enter image description here

3 个答案:

答案 0 :(得分:0)

试试这个。

@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;

答案 1 :(得分:0)

使用自定义列表视图... 并在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; 

}

答案 2 :(得分:0)

由于您希望根据您的条件在每一行中产生差异,您必须首先捕获您在列表项中获得的行的位置。之后,您必须在列表项中输入您想要的布局设计或数据。

如果您需要,也可以从代码中更改布局设计组件,因为您只是尝试增加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 and different list items’ layouts in one ListView

快乐的编码!!!