是否可以在列表视图中设置或更改项目的文本大小
如果可能,请解释可能性。
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;
}
}
是否可以在列表视图中设置或更改项目的文本大小
对的,这是可能的。只需为 ListView 的行项创建自己的自定义 xml 并为 ListView 设置自定义适配器。在那个 XML 中指定您的文本大小。
如果您通过扩展BaseAdapter使用自己的适配器,则可以使用自己的 xml 文件对每一行进行扩充,并且可以设置 textsize 或 typeface 等
当然可以。
如果您使用自己的自定义行,那么您必须在 xml 中编写该布局。您可以使用设置文本大小
android:textSize="XXsp"
或者,您可以从您的代码中动态地执行此操作,在您的 Adapter 类的列表视图中,您必须覆盖 getView 方法。在该方法中,您首先为该行扩展布局。然后你可以这样编码......
TextView textview = (TextView)view.findViewbyId(R.id.textview);
textview.setTextSize(18.0f);
希望能帮助到你。