我有一个带ScrollView的片段。当有更多东西需要展示时,我想向用户展示一些东西(箭头?),让他们知道他们可以滚动查看更多内容。
有办法吗?
答案 0 :(得分:4)
您可以始终使滚动条'滚动条可见,而不是仅在用户尝试向下/向上滚动时才显示。
您可以通过将android:fadeScrollbars="false"
添加到ScrollView XML的定义
答案 1 :(得分:2)
据我所知,没有开箱即用的实现。您可以在ScrollView
内放置RelativeLayout
,并更改ImageView
(您的箭头)的可见性,该ScrollView
位于{{1}}之上,具体取决于是否滚动滚动到底部。
答案 2 :(得分:1)
试试这个:
@Override
public void onWindowFocusChanged (boolean hasFocus)
{
if(child_of_scrollView.getMeasuredHeight() > oScrollView.getMeasuredHeight())
//Show some arrow image or something you like to show
}
答案 3 :(得分:1)
前段时间我对你有类似的需求。我想要的是,当显示活动时,自动从底部向上滚动,这样用户就可以看到有更多可用的项目。我这样做的方式是使用ViewTreeObserver。以下是我如何得到它的一个例子。
private ScrollView mScroll;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
mScroll = (ScrollView) findViewById(R.id.scroll_view);
ViewTreeObserver vto = mScroll.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mScroll.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int scrollHeight = mScroll.getChildAt(0).getMeasuredHeight();
mScroll.scrollTo(0, scrollHeight);
}
});
}
@Override
protected void onResume() {
super.onResume();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScroll.smoothScrollTo(0, 0);
}
}, 800);
}
我希望它对某人有帮助;)