【问题标题】:How to know if the user actually needs to use a scroll?如何知道用户是否真的需要使用滚动条?
【发布时间】:2012-12-08 11:11:20
【问题描述】:

所以我有这个 android 应用程序,其中的菜单有很多按钮。我已经为屏幕较小的手机设置了滚动条,它们需要向下滚动才能看到所有按钮,但对于屏幕较大的手机,无需滚动,因为所有按钮都可见。

我需要提醒那些需要使用对话框或其他东西向下滚动的用户,但需要为那些不需要滚动的用户做任何事情。

这甚至可能吗?

【问题讨论】:

  • 只需根据屏幕可用空间检查ScrollView 的孩子的大小,并确定用户是否需要滚动。但是,如果您将滚动条保留在 ScrollView 上,则放置 Dialog 可能太多了,这足以表明该菜单比用户当前看到的要多。
  • 通常,只需将scrollbars 放在ScrollView 上就足够了。随着视图变高,它们会变短,并且在不需要滚动时将是屏幕的长度。您检查屏幕窗口的视图高度的唯一原因是,如果您希望滚动条在不需要滚动时消失(除非它已经内置。我想不出它在我的头顶上)。

标签: android android-scrollbar


【解决方案1】:
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {  
                    int scrollRange = scrollView
                                .computeVerticalScrollRange();
                    if(scrollRange>screenHeight){
                     //user need to scroll
                     }



                    }
                });

【讨论】:

  • 如果只有computeVerticalScrollRange() 方法可以像那样使用就好了。
  • ScrollView.computeVerticalScrollRange() 是一个 protected 方法,因此您需要一个子类才能从OnGlobalLayoutListener访问它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多