0

是否可以在列表视图中设置或更改项目的文本大小

如果可能,请解释可能性。

4

4 回答 4

0

list_screen_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView
    android:id="@+id/listScreen"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" >
</ListView>

列表屏幕活动

    public class ListSreen extends FragmentActivity {
    private ListView list;
    private String[] strData = new String[('Z' - 'A') + 1];;
    private TestAdapter adapterData;
    private int i = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            setContentView(R.layout.list_screen_layout);
            list = (ListView) findViewById(R.id.listScreen);
            for (char c = 'A'; c <= 'Z'; c++) {
                strData[i++] = String.valueOf(c);
            }
            adapterData = new TestAdapter(strData, this);
            list.setAdapter(adapterData);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

测试适配器

    public class TestAdapter extends BaseAdapter {
    private int size = 0;

    public TestAdapter(String[] strData, Context cntx) {
        this.strData = strData;
        this.cntx = cntx;
        if (this.strData != null)
            size = this.strData.length;
    }

    String[] strData;
    private Context cntx;

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return size;
    }

    @Override
    public String getItem(int position) {
        // TODO Auto-generated method stub
        return this.strData[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    class Holder {
        TextView lbl;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Holder holder;
        if (convertView == null) {
            holder = new Holder();
            convertView = LayoutInflater.from(cntx).inflate(
                    R.layout.list_row_item, null);
            holder.lbl = (TextView) convertView.findViewById(R.id.lbl_text);
            convertView.setTag(holder);
        } else {
            holder = (Holder) convertView.getTag();
        }
        /*
         * textview style and all here can also b add here
         */
        holder.lbl.setText(this.strData[position]);

        return convertView;
    }

}
于 2013-10-07T12:20:19.373 回答
0

是否可以在列表视图中设置或更改项目的文本大小

对的,这是可能的。只需为 ListView 的行项创建自己的自定义 xml 并为 ListView 设置自定义适配器。在那个 XML 中指定您的文本大小。

于 2013-10-07T11:40:31.560 回答
0

如果您通过扩展BaseAdapter使用自己的适配器,则可以使用自己的 xml 文件对每一行进行扩充,并且可以设置 textsize 或 typeface 等

于 2013-10-07T11:41:26.847 回答
0

当然可以。

如果您使用自己的自定义行,那么您必须在 xml 中编写该布局。您可以使用设置文本大小

android:textSize="XXsp"  

或者,您可以从您的代码中动态地执行此操作,在您的 Adapter 类的列表视图中,您必须覆盖 getView 方法。在该方法中,您首先为该行扩展布局。然后你可以这样编码......

TextView textview = (TextView)view.findViewbyId(R.id.textview);
textview.setTextSize(18.0f);

希望能帮助到你。

于 2013-10-07T11:49:54.393 回答