Android ListView TextSize - PullRequest
       6

Android ListView TextSize

2 голосов
/ 18 мая 2010

my 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>

большой размер текста в списке. и я не могу понять, как изменить размер текста.

Ответы [ 4 ]

3 голосов
/ 18 мая 2010

Здесь действительно важна строка View, которую вы возвращаете в BaseAdapter getView(..) или CursorAdapter * newView(..).

Вы можете скопировать simple_list_item_1.xml или simple_list_item_2.xml из источников Android и настроить его под свои нужды.
Скажи, поменяй
android:textAppearance="?android:attr/textAppearanceLarge"
до
android:textAppearance="?android:attr/textAppearanceMedium".

Другой вариант - изменить внешний вид текста прямо в Adapter, вызвав setTextAppearance(context, android.R.attr.textAppearanceMedium) на TextView.

2 голосов
/ 18 мая 2010

Я не уверен, что получаю то, что вы хотите, но у listView нет размера текста, элементы внутри него определяют размер текста.

То есть, если вы добавляете текстовое представление в список, определите размер текста в textView.

1 голос
/ 29 сентября 2012

Ответ Янченко работает отлично, если вы переименуете свой местный 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 элементов списка.

0 голосов
/ 18 мая 2010

Я думаю, что у вас неправильный подход к использованию ListView. Используйте адаптер для подачи списка в представление, и в файле макета ListView вы не определяете строки, вы только определяете само представление списка и текстовое представление по умолчанию, которое будет отображаться, когда в списке нет элементов. Затем вы определяете отдельный XML-файл, который будет отображать каждую строку. Тогда в этом макете строки вы можете установить желаемый размер текста.

Вот пример списка XML (обратите внимание на специальный идентификатор, предоставленный списку и текстовому обзору, они необходимы):

<?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>

Тогда ваш макет строки будет вашим файлом без просмотра списка:

<?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)
                    }
                    ...
             }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...