Android: проблемы с размером прядильщика - PullRequest
2 голосов
/ 10 августа 2011

Я сделал специальный прядильщик, но размер не совсем такой, как я хочу.Спиннер становится слишком большим, чтобы получить интервал в списке, который мне нужен.Я хочу, чтобы можно было изменять размеры рядов счетчика независимо от размера кнопки счетчика.Я хочу, чтобы вертушка была тонкой, а затем я хочу, чтобы строки сечения были щедро разнесены.(См. Изображение внизу):

В настоящее время XML для строк счетчика выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:padding="5dip">
        <ImageView android:layout_width="32sp" android:src="@drawable/icon"
            android:id="@+id/spinnerimage" android:layout_height="32sp" />
        <TextView android:textSize="22sp" android:textStyle="bold" android:textColor="#000"
            android:layout_width="fill_parent" android:id="@+id/category"
            android:layout_height="fill_parent" android:paddingLeft="5sp" />
    </TableRow>
</TableLayout>

Я хотел использовать относительный макет, но макет таблицы дал мне немного лучшерасстояние.Если я попытаюсь сделать высоту, это обрежет текст и значки в строках.Спиннер в моем main.xml:

        <Spinner android:id="@+id/catspinner"
        android:layout_marginLeft="25dip" android:layout_marginRight="25dip"
        android:layout_width="fill_parent" android:layout_centerHorizontal="true"
        android:layout_height="wrap_content" android:prompt="@string/prompt"
        android:background="@drawable/yellow_btn"
        android:layout_centerVertical="true" android:drawSelectorOnTop="true" />

enter image description here

Я бы хотел, чтобы размер спина был таким же, как и у стандартного спиннера Android (справа).Мой в настоящее время полностью изменен, прядильщик слишком большой, а расстояние между строками слишком маленькое.

Есть идеи?

Ответы [ 3 ]

7 голосов
/ 10 августа 2011

при настройке адаптера скажем adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); это должно работать ...

1 голос
/ 23 декабря 2011

Может быть, уже довольно поздно, но я все равно поделюсь этим, потому что столкнулся с подобной проблемой.

Вам необходимо использовать Views "simple_spinner_item" для самого Spinner и "simple_spinner_dropdown_item" для раскрывающегося списка.

Вот фрагмент кода:

Spinner spnCat = (Spinner) findViewById(R.id.idea_category);

Cursor c = myDBHelper.getCategories();
startManagingCursor(c);

if (c != null) {
    // use the simple_spinner_item view and text1
    SimpleCursorAdapter adapterCat = new SimpleCursorAdapter(this,
        android.R.layout.simple_spinner_item,
        c, 
        new String[] {c.getColumnName(1)}, 
        new int[] {android.R.id.text1});

    spnCat.setAdapter(adapterCat);

    // use the simple_spinner_dropdown_item
    adapterCat.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);
}

Надеюсь, это поможет.

1 голос
/ 10 августа 2011

Используйте приведенный ниже код в соответствии с вашими потребностями ...

ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.Questions, R.layout.custom_spinner_list);
            adapter.setDropDownViewResource(R.layout.customer_spinner);
            spin.setAdapter(adapter);

custom_spinner_list.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:text="@+id/TextView01"
    android:id="@+id/TextView01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="12dp"
    android:textColor="#000000">
</TextView>

customer_spinner.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:text="@+id/TextView01"
    android:id="@+id/TextView01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="12dp"
    android:textColor="#000000"
    android:height="42dp"
    android:gravity="center_vertical"
    android:padding = "2dp">
</TextView>
...