Android Spinner ข้ามไปยังตำแหน่งที่เลือกไว้ก่อนหน้า

ฉันใช้ AppCompatSpinner เพื่อแสดงรายการสถานะ ในตอนแรก ฉันบันทึกรายการตำแหน่งแรก จากนั้นหากฉันคลิกตัวหมุนและพยายามเลื่อนช้าๆ มันจะไปที่ตำแหน่งก่อนหน้า ถ้าฉันเลื่อนเร็วไปหน่อย มันก็ใช้งานได้ ในระหว่างการเลื่อนช้าๆ และกดที่ตัวหมุนค้างไว้ รายการสินค้าจะสร้างปัญหา ใครทราบวิธีแก้ปัญหานี้บ้าง นี่คือสปินเนอร์ของฉัน

   <androidx.appcompat.widget.AppCompatSpinner
                    android:id="@+id/stateSpinner"
                    style="@style/Widget.AppCompat.Spinner.Underlined"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:theme="@style/SpinnerStyle"/>


       val adapter = ArrayAdapter(
        context,
        R.layout.spinner_item, stateList
    )

    adapter.setDropDownViewResource(R.layout.spinner_dropdown_item)
    stateSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
        override fun onItemSelected(adapterView: AdapterView<*>, view: View, i: Int, l: Long) {
            viewModelOffice.officeSelectedState.set(stateList.get(i))

        }

        override fun onNothingSelected(adapterView: AdapterView<*>) {
        }
    }
    stateSpinner.adapter = adapter
    stateSpinner.setSelection(selectedPosition)
}

ในธีม ฉันแค่ตั้งค่าสีเวอร์ชันขั้นต่ำของแอปคือ 21 ความช่วยเหลือใด ๆ ก็ตามจะได้รับการชื่นชม


person karthi keyan    schedule 05.03.2019    source แหล่งที่มา
comment
แสดงรหัสอะแดปเตอร์ของคุณ   -  person Bipin Gawand    schedule 05.03.2019
comment
@Bipin คุณช่วยตรวจสอบตอนนี้ได้ไหม   -  person karthi keyan    schedule 05.03.2019
comment
ไม่ชัดเจนว่าคุณกำลังถามอะไร พยายามเรียบเรียงใหม่และจัดเตรียมบริบทและโค้ดเพิ่มเติม   -  person shkschneider    schedule 05.03.2019
comment
@shkschneider ฉันมีสปินเนอร์พร้อมรายการแบบยาว สิ่งที่ฉันสังเกตเห็นคือเมื่อใดก็ตามที่ฉันพยายามเลื่อนรายการสปินเนอร์ช้าๆ มันก็จะพาฉันกลับไปที่ด้านบนสุดของการเลือกสปินเนอร์ ฉันแค่ใช้ Spinner มาตรฐานกับ ArrayAdapter แบบธรรมดา มันไม่ได้เป็นปัญหาจริงๆ แต่มันค่อนข้างน่ารำคาญที่เมื่อใดก็ตามที่ผู้ใช้เลื่อนช้าๆ การเลือกจะรีเซ็ตไปจนสุดด้านบน คุณสามารถพลิกรายการได้ แต่หากคุณเลื่อนช้าๆ โดยวางนิ้วไว้บนหน้าจอ รายการจะเลื่อนกลับขึ้นไปที่ด้านบนของรายการ   -  person karthi keyan    schedule 06.03.2019
comment
ฉันกำลังประสบปัญหาเดียวกัน ฉันเดาว่าปัญหาจะมาพร้อมกับ androidx แต่ยังหาทางไม่เจอ...   -  person Hoa Nguyen    schedule 18.03.2019
comment
มีความคืบหน้าเกี่ยวกับเรื่องนี้หรือไม่? ผมมีปัญหาเดียวกัน. รหัสเดียวกันก่อน android x ไม่ได้ทำเช่นนี้   -  person mike_x_    schedule 19.03.2019
comment
@mike_x_ ดูคำตอบด้านล่าง   -  person karthi keyan    schedule 21.03.2019
comment
@HoaNguyen คำตอบด้านล่างแก้ไขปัญหาของฉันได้   -  person karthi keyan    schedule 21.03.2019
comment
@karthikeyan ขอบคุณ มันเป็นคำตอบของฉันใน stackoverflow.com/questions/48328592/ ไม่มีสถานะการอัปเดตสำหรับหัวข้อของคุณ   -  person Hoa Nguyen    schedule 22.03.2019


คำตอบ (1)


ในที่สุดมันก็ได้ผลสำหรับฉัน

ปัญหาคือการอัปเดต androidx libs

แก้ไขโดยเปลี่ยนเวอร์ชัน appcompat จาก "alpha02/alpha03" กลับไปเป็น "alpha01"

การใช้งาน 'androidx.appcompat:appcompat:1.1.0-alpha01'

หรือดีกว่า

การใช้งาน 'androidx.appcompat:appcompat:1.0.2' -> เพื่อให้มีเสถียรภาพมากขึ้น

person karthi keyan    schedule 20.03.2019
comment
ตรงนี้ก็เหมือนกัน. เนื่องจากฉันเป็น minSdkVersion 21 อยู่แล้ว ฉันจึงเพิ่งสร้างคลาสใหม่ NoSupportSpinner extends Spinner เพื่อหลีกเลี่ยงไม่ให้ AppCompatSpinner เสียหาย - person rockgecko; 06.06.2019