我正在寻找自定义微调器。像这样:
我无法渲染相同的视图。我试图实现与自定义微调器有关的事情。
<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" />