6

ScrollView を持つフラグメントがあります。表示するものが他にもある場合は、ユーザーに何か (矢印?) を表示して、スクロールしてさらに表示できることをユーザーに知らせたいと思います。

それを行う方法はありますか?

4

4 に答える 4

6

ユーザーが上下にスクロールしようとした場合だけでなく、スクロールビューのスクロールバーを常に表示することができます。

android:fadeScrollbars="false"ScrollView XMLの定義に追加することでそれを行うことができます

于 2013-10-08T09:18:49.633 に答える
3

私の知る限り、このためのすぐに使える実装はありません。スクロールが下までスクロールしたかどうかに応じて、 のScrollView内側にを配置し、 (矢印)RelativeLayoutの可視性を変更することができます。ImageViewScrollView

于 2013-10-08T09:16:46.680 に答える
2

しばらく前に、私はあなたと同様のニーズがありました. 私が望んでいたのは、アクティビティが表示されたときに、自動的に下から上にスクロールして、利用可能なアイテムが他にもあることをユーザーが確認できるようにすることでした。私が行った方法は、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);

    }

誰かの役に立てば幸いです;)

于 2013-10-08T10:25:27.493 に答える
2

これを試して :

@Override
public void onWindowFocusChanged (boolean hasFocus)
{
    if(child_of_scrollView.getMeasuredHeight() > oScrollView.getMeasuredHeight())
        //Show some arrow image or something you like to show
}
于 2013-10-08T09:16:07.747 に答える