Spinner Dropdown不会居中或匹配Parent Width

时间:2016-05-30 05:31:48

标签: android user-interface spinner

微调器下拉一直很挑剔。我唯一能想到的是父视图导致它的行为使文本或整个下拉列表本身偏离旋转器项目,如下所示:

enter image description here

下拉代码:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textAlignment="center"
android:textColor="#000000"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:paddingLeft="50dp"
android:paddingRight="50dp"/>

Spinner代码:

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner_contour"
    android:layout_below="@id/greeting_main_menu"
    android:background="#ff515e6f"
    android:layout_alignParentRight="true"
    android:layout_marginTop="10.0sp"
    android:layout_marginBottom="10.0sp"
    android:popupBackground="#ffffff"
    android:paddingStart="20dp"
    android:paddingEnd="20dp"
    android:paddingBottom="10dp" />

我确实尝试过明显的边距和填充下拉项目,我很茫然。我希望白色下拉列表排列或至少与浅蓝色微调器具有相同的宽度。

编辑:这是我至少用于列表的适配器代码,它非常基本:

public void createSpinners()
{
    spinnerContour = (Spinner) activity.findViewById(R.id.spinner_contour);
    ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(activity.getApplicationContext(),
            R.array.contour_values, R.layout.custom_spinner_item);
    adapter1.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);
    spinnerContour.setAdapter(adapter1);
    spinnerContour.setOnItemSelectedListener(this);

    spinnerBPM = (Spinner) activity.findViewById(R.id.spinner_bpm);
    ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(activity.getApplicationContext(),
            R.array.bpm_values, R.layout.custom_spinner_item);
    adapter2.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);
    spinnerBPM.setAdapter(adapter2);
    spinnerBPM.setOnItemSelectedListener(this);
}

1 个答案:

答案 0 :(得分:0)

因此,事实证明微调器的填充确定了下拉列表的偏移量。去图!

这似乎就是答案:https://stackoverflow.com/a/29560301/1580355

虽然我现在正在尝试对齐文本中心,但至少下拉列表和微调器宽度现在相等。谢谢你看看。