滚动onclick listener上活动的底部



在我的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??
}
}
scroll.fullScroll(View.FOCUS_DOWN);

这帮我搞定了。

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

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

使用

mScrollViewLayout.scrollTo(0, mScrollViewLayout.getMaxScrollAmount ());
await Task.Delay(500);
scrollView1.FullScroll(FocusSearchDirection.Down);

对于XAMARIAN ANDROID,它适用于我

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

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

最新更新