在我的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??
}
}
答案 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);