Как можно свернуть и развернуть макет представления переработчика при нажатии кнопки? - PullRequest
0 голосов
/ 05 марта 2020

Я разрабатываю представление переработчика с Kotlin. Давайте посмотрим на мой код: когда я нажимаю на кнопку orderProduct, представление orderRecycler становится видимым, и наоборот, когда я нажимаю снова, видимое исчезает. Но иногда, когда я нажимаю на него, отображается вид переработчика, а иногда не отображается. Так как я могу сделать это в любое время? Как я могу решить эту ошибку?

 orderProduct.setOnClickListener{

            orderProduct.setCompoundDrawablesWithIntrinsicBounds(0, 0, if (!isClicked) R.drawable.btn_down else R.drawable.btn_up, 0)

                if (isClicked) {

                    var r = Runnable {

                        try {
                            orderRecyclerview.visibility=View.VISIBLE
                            paymentList= paymentDb?.paymentDao()?.getAll()!!
                            mAdapter = PaymentRecylcerViewAdapter(this, paymentList)
                            mAdapter.notifyDataSetChanged()

                            orderRecyclerview.adapter = mAdapter
                            orderRecyclerview.layoutManager = LinearLayoutManager(this)
                            orderRecyclerview.setHasFixedSize(false)

                        }catch (e: Exception) {

                        }
                    }
                    val thread = Thread(r)
                    thread.start()

                }else {
                    orderRecyclerview.visibility=View.GONE
                }

            isClicked = !isClicked

            }

Ответы [ 2 ]

5 голосов
/ 05 марта 2020

Во-первых, вы можете переместить этот код выше onclickListner.

 paymentList= paymentDb?.paymentDao()?.getAll()!!
 mAdapter = PaymentRecylcerViewAdapter(this, paymentList)
 mAdapter.notifyDataSetChanged()

 orderRecyclerview.adapter = mAdapter
 orderRecyclerview.layoutManager = LinearLayoutManager(this)
 orderRecyclerview.setHasFixedSize(false)

Затем внутри onClickListner видимости дескриптора orderRecyclerview.

. Также можно добавить анимацию в этом. Надеюсь, это поможет.

0 голосов
/ 05 марта 2020

добавить зависимость compile 'net.cachapa.expandablelayout:expandablelayout:2.9.2'

  <net.cachapa.expandablelayout.ExpandableLayout
android:id="@+id/expandable_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:el_duration="1000"
app:el_expanded="true"
app:el_parallax="0.5">

<RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:text="Fixed height" />

To trigger the animation, simply grab a reference to the ExpandableLayout from your Java code and and call either of expand(), collapse() or toggle().
...