Мой аккуратный узкий счетчик при включении расширяется до безобразного простого экрана - PullRequest
2 голосов
/ 01 августа 2011

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

Мои 5 блесен, как видно на первом скриншоте, представляют собой только короткие числа. Нет проблем сформировать их ширину в XML-файле. Но когда они активированы, они расширяются до полной ширины экрана, что делает его уродливым, как видно на втором скриншоте. Я использую стандартный код из учебника SDK, чтобы заполнить счетчики. Я экспериментировал с simple_spinner_dropdown_item и simple_spinner_item. Оба имеют одинаковую функциональность, но немного отличную графику. К сожалению, я не нашел нигде опубликованного, как получить доступ / изменить эти 2 блока, поэтому я не могу изменить их ширину, цвет, размер текста, atc. У кого-нибудь есть подсказки, как справиться с этой проблемой? Это стандартный код счетчика (= учебник по SDK) (показан только один счетчик):

Spinner s1_weight = (Spinner)findViewById(R.id.s1_weight);//Reference to "s1_weight"  in main.xml, registered in R.id.
ArrayAdapter<CharSequence> adapter_weight = ArrayAdapter.createFromResource(
        this, R.array.Weight_array_id, android.R.layout.simple_spinner_item);
adapter_weight.setDropDownViewResource(android.R.layout.simple_spinner_item);
s1_weight.setAdapter(adapter_weight);
s1_weight.setOnItemSelectedListener(new OnItemSelectedListener() {  //Register a callback to be invoked when an item in this AdapterView has been selected.
    public void onItemSelected(AdapterView<?> arg0, View arg1,  //Callback method to be invoked when an item in this view has been selected
            int arg2, long arg3) {
            myCalc();}
    public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
    }
});

Это мой XML-файл (показан только один счетчик):

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <TextView
        android:text="@string/txtWeight"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight=".6"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:textStyle="bold">
    </TextView>
    <Spinner
        android:entries="@array/Weight_array_id"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/s1_weight">
    </Spinner>
</LinearLayout>

А это мои скриншоты:

Tidy narrow spinner, when not activated

One spinner activated, results in ugly screen

...