向用户显示Android上的ScrollView中有更多内容

时间:2013-10-08 09:03:09

标签: android scrollview

我有一个带ScrollView的片段。当有更多东西需要展示时,我想向用户展示一些东西(箭头?),让他们知道他们可以滚动查看更多内容。

有办法吗?

4 个答案:

答案 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);

    }

我希望它对某人有帮助;)