1

在我的 Android 应用程序中,我有一些最初不可见的视图(按钮、EditTexts 等)。这些仅在特定的按钮单击事件中可见。我希望将滚动视图移动到这些视图的末尾,以便用户可以看到这些视图。

布局文件的相关部分:

    <ScrollView...>

    <RelativeLayout android:id="@+id/RelDevDet"
            android:layout_width="fill_parent" android:layout_height="wrap_content">
            .
            .
            .
            <ImageButton android:id="@+id/ibRateApp"
                android:layout_toRightOf="@id/tvRateApp"
                android:layout_alignTop="@id/tvRateApp"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:background="@drawable/arrow_up" android:clickable="true"
                android:layout_marginRight="5dp"
                android:paddingBottom="10dp"
                 />
            <RatingBar android:id="@+id/rtApp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tvRateApp"
                android:layout_marginLeft="5dp" android:visibility="gone"/>
            <EditText android:layout_width="fill_parent"
                android:id="@+id/etRateApp"
                android:layout_height="wrap_content" 
                android:lines="3"
                android:layout_below="@+id/rtApp"
                android:layout_marginRight="5dp"
                android:layout_alignLeft="@+id/tvDevWeb"
                android:visibility="gone" />
            <Button android:id="@+id/btSubRat" android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_below="@+id/etRateApp" android:layout_margin="5dp" android:text="Submit" android:visibility="gone"/>
        </RelativeLayout>
        </ScrollView>

按钮的 onclicklistener 是:

public void onClick(View v) {
if(v.getId()== R.id.ibRateApp){
            Log.d("amit","scroll end");
            rtApp.setVisibility(View.VISIBLE);
            etRateApp.setVisibility(View.VISIBLE);
            //How to get the scrollview move to the end of the page here??
        }
}
4

4 回答 4

8
scroll.fullScroll(View.FOCUS_DOWN);

这为我修好了。

于 2012-12-06T05:07:19.243 回答
3

如果布局有隐藏视图,则使用后期延迟是安全的,这样只有在使视图可见后才会调用该方法,以便通过考虑隐藏视图向下滚动到页面末尾

int SPLASH_TIME_OUT = 10;

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                invisibleview.setVisibility(View.VISIBLE);
                scrollView.fullScroll(View.FOCUS_DOWN);
                if (invisibleview.getVisibility() == View.VISIBLE){

                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            // This method will be executed once the timer is over
                            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
                        }
                    }, SPLASH_TIME_OUT);
                    scrollView.fullScroll(View.FOCUS_DOWN);
                }
            }
        });
于 2019-06-27T10:11:27.387 回答
0

采用

 mScrollViewLayout.scrollTo(0, mScrollViewLayout.getMaxScrollAmount ());
于 2012-12-04T08:30:00.113 回答
-2

//嘿先生,我劝你不要写太多代码,只需在 onclickLIsener 方法 add 上使用 findviewByid 调用 ScrollView。

    scrollview.fullScroll(View.FOCUS_UP); Or
    scrollview.fullScroll(View.FOCUS_DOWN); 
于 2020-03-12T15:19:34.637 回答