0
我在我的應用程序中使用微調器,並使用自定義適配器來填充微調器中的條目。一切工作正常,像點擊它,設置選擇值等,但當我嘗試在微調器上滾動時,微調器本身將移動到默認選擇位置,而不管它在哪裏,無論它在頂部還是底部,如一旦我再次觸摸它滾動,我就被置於默認選擇。微調控制器在Android 7.0中觸摸時默認選擇觸摸
您可以在下面的代碼中找到適配器,微調器聲明和微調器項目。
Spinner.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp">
<Spinner
android:id="@+id/toolbar_spinner"
style="@style/ToolbarSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
spinner_item.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:background="?attr/selectableItemBackground">
<View
android:id="@+id/line_separator"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/divider"
android:layout_gravity="center"
android:paddingStart="16dp"
android:layout_marginLeft="8dp"
android:visibility="gone"
tools:visibility="visible"/>
<TextView
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|start|left"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textColor="@color/black_dropdown"
android:textSize="18sp"
android:ellipsize="end"
android:maxLines="1"
tools:text="test"
/>
</LinearLayout>
下面是顯示瞭如何調用微調適配器:
SpinnerAdapter adapter = new SpinnerAdapter(mHelperActivity.getSupportActionBar().getThemedContext(), item_list);
mSpinner.setAdapter(adapter);
mSpinner.setDropDownWidth((Utilities.getScreenWidth(getContext()) * 3)/4);
mSpinner.setSelection(Caches.getSelectedCategoryPosition());
我已經嘗試設置自定義代碼主題,自定義popuptheme但沒有收益。
P.S .:這隻發生在Android 7中,它在Android 6或更低版本中工作得很好。
如果您entiries值對於Spinner>?調用者適配器調用中的 – Ibrahim
,名爲item_list –
'mSpinner.setDropDownWidth((Utilities.getScreenWidth(getContext())* 3)/ 4); mSpinner.setSelection(Caches.getSelectedCategoryPosition());' 請嘗試哈希這行代碼並嘗試,我不知道你爲什麼用這種方式提交你的自我... – Ibrahim