Android Spinner显示透明屏幕,数据失真,但项目可选

时间:2016-06-03 07:11:18

标签: android android-studio android-spinner

我有一个微调器,我有一个arraylist,其中包含我使用数组适配器设置到微调器的状态名称。我认为微调器的dropdown_item的布局存在一些问题,它采用的是样式该应用程序。由于我在项目中使用了材质,因此在这里应用了相同的样式。

项目可见也可选择项目,但下拉列表未正确显示

任何人都可以帮帮我 Something like this

这就是我将我的arraylist设置为微调器的方式。

    mArrayAdapter_userType = new ArrayAdapter<String>(RegistrationActivity.this, R.layout.spinner_text, aArrayList_userType);
    mArrayAdapter_userType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mSpinner_userType.setAdapter(mArrayAdapter_userType);

1 个答案:

答案 0 :(得分:1)

build.gradle文件

中添加此依赖项
 compile 'com.github.rey5137:material:1.2.2'

在Xml中编写此代码。

 <com.rey.material.widget.Spinner
                    android:id="@+id/spinner_label"
                    style="@style/LightSpinner"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:minWidth="128dp"
                    android:padding="8dp"
                    app:spn_label="Spinner with arrow" />

在Java类中编写此代码。

 Spinner spn_label = (Spinner) findViewById(R.id.spinner_label);
 String[] items = new String[20];
   for (int i = 0; i < items.length; i++) {
          items[i] = "Item " + String.valueOf(i + 1);
       }
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.row_span, items);
 spn_label.setAdapter(adapter);

layout文件夹中创建 row_span.xml

<?xml version="1.0" encoding="utf-8"?>
<com.rey.material.widget.TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/row_spn_tv"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:gravity="center_vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:textDirection="locale"
    style="@style/LightSpinner"/>

运行时,会生成以下输出。

enter image description here

有关详细信息,请访问:https://github.com/rey5137/material

不使用任何库:

将此内容写入xml

<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

在资源文件中创建数组数据

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

在Java中使用它

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);