在 onclick 监听器上滚动到 Activity 的底部

问题描述 投票:0回答:5

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

布局文件的相关部分:

    <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??
        }
}
android android-scrollview
5个回答
8
投票
scroll.fullScroll(View.FOCUS_DOWN);

这为我解决了问题。


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

0
投票

使用

 mScrollViewLayout.scrollTo(0, mScrollViewLayout.getMaxScrollAmount ());

0
投票
 await Task.Delay(500);
 scrollView1.FullScroll(FocusSearchDirection.Down);

对于 XAMARIAN ANDROID 它适合我


-2
投票

//嘿先生,我建议您不要编写太多代码,只需在 onclickLIstener 方法 add 上使用 findviewByid 调用 ScrollView 即可。

    scrollview.fullScroll(View.FOCUS_UP); Or
    scrollview.fullScroll(View.FOCUS_DOWN); 
© www.soinside.com 2019 - 2024. All rights reserved.