Я хочу создать блесну с дизайном материала. Моя проблема в том, что когда у меня есть 2 счетчика в одной раскладке, при вращении телефона в счетчике 1 выбирается вращение телефона. *
Например:
В Spinner1 есть элементы test1, test2, test3.
У Spinner2 есть элементы test4, test5, test6.
Когда я выбираю test2 на Spinner1 и test5 на Spinner2 и поверните телефон, затем на Spinner1 выбранный пункт - test5 , что даже не должно быть возможным. Это происходит только на моем тестовом устройстве Samsung S9. Когда я делаю то же самое на других телефонах, таких как OnePlus или Pixel emulator, выбор Spinner1 остается без изменений test2 .
MainActivity code
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TestSpinner testTestSpinner1 = findViewById(R.id.testSpinner1);
testTestSpinner1.setItems(Arrays.asList("test1", "test2", "test3"));
TestSpinner testTestSpinner2 = findViewById(R.id.testSpinner2);
testTestSpinner2.setItems(Arrays.asList("test4", "test5", "test6"));
}
код активности_основы
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".MainActivity">
<com.skolimowski.testexposeddropdownmenu.TestSpinner
android:id="@+id/testSpinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.skolimowski.testexposeddropdownmenu.TestSpinner
android:id="@+id/testSpinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/testSpinner1" />
Код TestSpinner
public class TestSpinner extends FrameLayout {
private ArrayAdapter<String> adapter;
public TestSpinner(@NonNull Context context) {
super(context);
init(context);
}
public TestSpinner(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TestSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
FrameLayout parentLayout = (FrameLayout) inflate(context, R.layout.spinner_layout, this);
TextInputLayout textInputLayout = parentLayout.findViewById(R.id.til);
AutoCompleteTextView autoCompleteTextView = textInputLayout.findViewById(R.id.ac);
adapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line);
autoCompleteTextView.setAdapter(adapter);
}
public void setItems(List<String> items) {
adapter.clear();
adapter.addAll(items);
}
}
код spinner_layout
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="match_parent">
<AutoCompleteTextView
android:id="@+id/ac"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:editable="false"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>