Как прокрутить линейный макет вниз Когда линейный макет виден при нажатии кнопки [kotlin] - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть куча текстового представления и редактируемая текстовая форма в представлении прокрутки, а также линейная форма ниже формы внутри того же вида прокрутки в этом линейном макете, имеющая кучу текстового представления вертикально.Первоначально линейный макет потерял видимость, когда пользователь нажал «добавить дополнительную информацию», которая располагается чуть выше этого линейного макета, затем кнопка видимость макета становится видимой.Это работает нормально, как и ожидалось, но я хочу, чтобы линейный макет становился видимым, а прокрутка должна прокручиваться вниз, чтобы пользователь мог видеть расширенные данные.Я перепробовал все, но ничто не может мне помочь.Пожалуйста, помогите мне решить эту проблему. Ниже приведен метод ShowHideLayout.Нужна помощь

fun showHideLayout() {
    if (linearLayoutAddMoreInfoExpand.visibility == GONE) {

        linearLayoutAddMoreInfoExpand.visibility = VISIBLE
        mTextViewAddMoreInfo.setText("Close Add More Info")
        scrollView.post(Runnable {
        scrollView.fullScroll(ScrollView.FOCUS_DOWN)
            //scrollView.scrollTo(0,scrollView.bottom)
        })

       // scrollView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
        scrollView.scrollTo(0,scrollView.bottom)
        //scrollView.smoothScrollBy(R.id.linearLayoutAddMoreInfoExpand,R.id.scrollBottom)

    } else if (linearLayoutAddMoreInfoExpand.visibility== VISIBLE) {

        linearLayoutAddMoreInfoExpand.visibility = GONE
        mTextViewAddMoreInfo.setText("+ Add More Info")
    }
}

1 Ответ

0 голосов
/ 17 февраля 2019

Вы можете решить эту проблему, добавив еще одно представление прокрутки перед вашим exapandLinearLayout в xml-файле, и вызвать это представление прокрутки по нажатию кнопки, чтобы при каждом линейном расположении прокручиваться вниз.Но это не может быть лучшей практикой.Ваш код будет выглядеть следующим образом:

<Scrollview
     android:id = @+id/scrollViewLayout
       .....
       ....>
    <LinearLayout....>

<--Remaining view-->

</LinearLayout>
       </Scrollview>

А в Java на addmoreinfo нажмите кнопку, чтобы вызвать этот просмотр прокрутки, как показано ниже: -

    fun showHideLayout() { 
if(linearLayoutAddMoreInfoExpand.visibility == GONE){ 
linearLayoutAddMoreInfoExpand.visibility = VISIBLE
mTextViewAddMoreInfo.setText("Close Add More Info")
scrollViewLayout.post(Runnable { scrollView.fullScroll(ScrollView.FOCUS_DOWN)  })
...