我的listview.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myapp="http://schemas.android.com/apk/res/zaid.quotes.dlama">
<ListView android:id="@+id/ListView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_alignParentTop="true"
android:layout_marginBottom="50dp" android:paddingTop="50dp"></ListView>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/Back"
android:layout_alignParentBottom="true" android:text="Go Back"></Button>
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/LinearLayout01" android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<com.admob.android.ads.AdView android:id="@+id/ad"
android:layout_width="fill_parent" android:layout_height="wrap_content"
myapp:backgroundColor="#000000" myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC" android:layout_alignParentTop="true" />
</LinearLayout>
</RelativeLayout>
列表视图中文本的当前大小很大。我似乎无法弄清楚如何更改文字大小。
答案 0 :(得分:3)
这里真正重要的是您在View
的{{1}}或BaseAdapter
getView(..)
中返回的行CursorAdapter
。
您可以从Android来源复制newView(..)
或simple_list_item_1.xml
,并根据您的需要进行自定义
说,改变
simple_list_item_2.xml
到
android:textAppearance="?android:attr/textAppearanceLarge"
。
另一个选项是通过调用android:textAppearance="?android:attr/textAppearanceMedium"
上的Adapter
来改变setTextAppearance(context, android.R.attr.textAppearanceMedium)
中的文字外观。
答案 1 :(得分:2)
我不确定我是否得到你想要的东西,但是listView没有文字大小,里面的元素是定义文字大小的元素。
也就是说,如果您将textview添加到列表中,请在textView中定义文本大小。
答案 2 :(得分:1)
如果您重命名本地simple_list_item_1.xml
MyActivity.java
:
ArrayAdapter<String> filesAdapter = new ArrayAdapter<String>(this,
R.layout.simplest_list_item_1, topFilesArray);
filesList.setDivider(null);
simplest_list_item_1.xml
:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="7pt"
android:paddingLeft="6dip" />
layout_height="wrap_content"
仅用于10个列表项目。
答案 3 :(得分:0)
我认为你使用ListView有错误的方法。使用适配器将列表提供给视图,并且在ListView布局文件中,您不定义行,您只定义列表视图本身和默认文本视图,该视图将在列表中没有项目时显示。然后定义一个单独的xml文件,该文件将呈现每一行。然后在此行布局中,您可以随意设置文本大小。
这是listview xml的一个示例(请注意listview和textview的特殊ID,这些是必需的):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="horizontal" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:paddingLeft="8dp" android:paddingRight="8dp">
<ListView android:id="@+id/android:list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_weight="1"
android:drawSelectorOnTop="false" />
<TextView android:id="@+id/android:empty"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:text="No records found" />
</LinearLayout>
然后您的行布局将是没有listview的文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myapp="http://schemas.android.com/apk/res/zaid.quotes.dlama">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/Back"
android:layout_alignParentBottom="true" android:text="Go Back"></Button>
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/LinearLayout01" android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<com.admob.android.ads.AdView android:id="@+id/ad"
android:layout_width="fill_parent" android:layout_height="wrap_content"
myapp:backgroundColor="#000000" myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC" android:layout_alignParentTop="true" />
</LinearLayout>
</RelativeLayout>
以下是适配器的getView()方法示例,您可以在其中设置行布局文件:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_layout, null);
}
//Now, assuming your adapter has the list of objects to be displayed in 'records':
if(records != null) {
YourRecord r = records.get(position);
if(r != null) {
// Populate your views in your row.xml based on data from your record selected (r)
}
...
}
}