LinearLayout изменяет высоту счетчика неравномерно - PullRequest
0 голосов
/ 07 февраля 2020

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

Это мой файл макета

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginStart="5dp"
    android:layout_marginTop="5dp"
    android:layout_marginEnd="5dp"
    android:layout_marginBottom="5dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView4"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:text="@string/activity_registervalues_message" />

    <EditText
        android:id="@+id/textview_valuespoint_pointname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:autofillHints=""
        android:hint="@string/activity_registervalues_textview_point"
        android:inputType="textPersonName"></EditText>

    <Spinner
        android:id="@+id/spinner_valuespoint"
        style="?android:spinnerItemStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"></Spinner>

    <EditText
        android:id="@+id/textview_valuespoint_pointvalue"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:autofillHints=""
        android:hint="@string/activity_registervalues_textview_value"
        android:inputType="none|numberDecimal"></EditText>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button_valuespoint_novo"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/activity_registervalues_button_novo"></Button>

        <Button
            android:id="@+id/button_valuespoint_save"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/activity_registervalues_button_salvar"></Button>

        <Button
            android:id="@+id/button_valuespoint_close"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/activity_registervalues_button_fechar" />
    </LinearLayout>

    <ListView
        android:id="@+id/listview_valuespoint"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </ListView>

</LinearLayout>

Стили. xml

<resources>
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="textAppearanceFinish">@style/TextAppearanceFinish</item>
    </style>

    <style name="WizardTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="textAppearanceFinish">@style/TextAppearanceFinish</item>
    </style>

    <style name="TextAppearanceFinish" parent="android:TextAppearance.Holo.Medium">
        <item name="android:textColor">#fff</item>
    </style>
</resources>

В классе java у меня есть адаптер

public ArrayAdapter createArrayAdapter() {
    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
            android.R.layout.simple_spinner_dropdown_item,
            getSelectedAttributeList()); 

    return spinnerArrayAdapter;
}

Почему меняется высота счетчика?

РЕДАКТИРОВАТЬ: Экраны

Экран во время проекта

Project time

Экран в исполнении

Execution time

Как видите, во времени проекта пространство делится поровну, но во времени исполнения можно увидеть разницу

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Проблема была в createArrayAdapter. Я должен использовать simple_spinner_item

Итак:

public ArrayAdapter createArrayAdapter() {
    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
            android.R.layout.simple_spinner_item,
            getSelectedAttributeList());
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    return spinnerArrayAdapter;
}
0 голосов
/ 07 февраля 2020

fill_parent устарел, вы должны заменить на match_parent или, возможно, изменить свою реализацию и заменить на wrap_content.

Подумайте о замене ListView на RecyclerView.

...