如何向下滚动线性布局当按钮上显示linearLayout时,单击[kotlin]

时间:2019-02-15 20:12:15

标签: java android kotlin scrollview android-linearlayout

我在滚动视图中具有一堆文本视图和编辑文本表单,并且在具有一堆文本视图垂直的线性布局中,在同一滚动视图中的表单内部也具有线性布局。最初,当用户按下“添加更多信息”时,线性布局的可见性消失了,该状态正好在此线性布局上方,然后单击按钮即可看到可见的布局。这按预期工作正常,但是我想要的是当线性布局变得可见时,滚动视图应向下滚动,以便用户可以看到扩展的数据。我尽了一切,但没有任何办法可以帮助我。 请帮我解决这个问题。下面是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 :(得分:1)

您可以解决此问题,在XML文件中的exapandLinearLayout之前添加另一个滚动视图,并在单击按钮时调用此滚动视图,这样您的线性布局就将向下滚动。但这可能不是最佳实践。 您的代码如下所示

<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)  })