0

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

Listview 提供了很多列表值。

我试过但无法达到类似这样的效果:

在此处输入图像描述

4

3 回答 3

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 和不同列表项在一个 ListView 中的布局

快乐编码!!!

于 2013-11-21T10:06:09.437 回答
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;
于 2013-11-21T09:58:36.087 回答
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; 

}

于 2013-11-21T10:01:56.980 回答