带阴影和箭头的自定义微调器

时间:2018-08-03 08:02:23

标签: android spinner android-custom-view

我正在寻找自定义微调器。像这样:

Spinner Unselected Spinner Drop Down view

我无法渲染相同的视图。我试图实现与自定义微调器有关的事情。

     <android.support.v7.widget.AppCompatSpinner
            android:id="@+id/spinner_language"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/gradient_spinner"
            android:forceHasOverlappingRendering="false"
            android:layout_margin="@dimen/margin_5"
            android:padding="@dimen/padding_10"></android.support.v7.widget.AppCompatSpinner>

// gradient_spinner

<item>
    <layer-list>
        <item>
            <shape>
                <gradient android:angle="90" android:endColor="#FFFFFF" android:startColor="#FFFFFF" android:type="linear" />

                <stroke android:width="1dp" android:color="@color/light" />

                <corners android:radius="4dp" />

                <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
            </shape>
        </item>
        <!--<item>-->
            <!--<src android:gravity="bottom|right" app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp" />-->
        <!--</item>-->
    </layer-list>
</item>

另外,当我添加项目位图时,它崩溃了应用程序而未渲染view.so在上面的代码中进行了注释。 现在,我仅使用textview来呈现下拉数据。

通过以下方式将数据添加到阵列适配器:

String[] languages = new String[]{
            "Hindi",
            "English",
            "বাংলা",
            "தமிழ்"

    };

    final List<String> languageList = new ArrayList<>(Arrays.asList(languages));

    // Initializing an ArrayAdapter
    final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
            getActivity(), R.layout.language_spinner_item, languageList) {
        @Override
        public View getDropDownView(int position, View convertView,
                                    ViewGroup parent) {
            View view = super.getDropDownView(position, convertView, parent);
            return view;
        }
    };

            spinnerArrayAdapter.setDropDownViewResource(R.layout.language_spinner_item);
    mLanguageSpinner.setAdapter(spinnerArrayAdapter);

// langauge_spinner_item

    <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:padding="10dp"
    android:textColor="@android:color/black" />

0 个答案:

没有答案