在onclick监听器上滚动活动的底部

时间:2012-12-04 08:26:37

标签: android android-scrollview

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

布局文件的相关部分:

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

5 个答案:

答案 0 :(得分:3)

scroll.fullScroll(View.FOCUS_DOWN);

这为我解决了。

答案 1 :(得分:0)

使用

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

答案 2 :(得分:0)

答案 3 :(得分:0)

如果布局具有隐藏视图,则可以安全地使用发布延迟,以便仅在使视图可见后才调用该方法,以便在考虑隐藏视图的情况下向下滚动到页面末尾

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

答案 4 :(得分:-2)

///嘿,先生,请您不要写太多代码,只需在onclickLIstener方法add上使用findviewByid调用ScrollView。

    scrollview.fullScroll(View.FOCUS_UP); Or
    scrollview.fullScroll(View.FOCUS_DOWN);