Android 底页 - 滚动问题

2024-03-31

我需要底部纸张停在两个位置。我有以下底页代码。

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    ....
</RelativeLayout>

<FrameLayout
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
       <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:minHeight="1000dp"
                android:orientation="vertical">
                ....
            </LinearLayout>
      </ScrollView>
 </FrameLayout>

and

View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);
    final BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
    behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
        @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState) {
            // React to state change
            Log.e("onStateChanged", "onStateChanged:" + newState);
            if (newState == BottomSheetBehavior.STATE_EXPANDED) {
                behavior.setPeekHeight(600);
                showAgain.setVisibility(View.GONE);
                mMap.getUiSettings().setScrollGesturesEnabled(false);
            } else if (newState == BottomSheetBehavior.STATE_COLLAPSED) {

                if (behavior.getPeekHeight() == 600) {
                    behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
                    behavior.setPeekHeight(80);
                    mMap.getUiSettings().setScrollGesturesEnabled(false);
                } else if (behavior.getPeekHeight() == 80) {
                    showAgain.setVisibility(View.VISIBLE);
                    mMap.getUiSettings().setScrollGesturesEnabled(true);
                }

            }
        }

        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset) {
            // React to dragging events
            Log.e("onSlide", "onSlide " + slideOffset);
        }
    });

    behavior.setPeekHeight(600);

除了一件事之外,这段代码工作正常。第一次我必须向上滚动底部表格,然后我可以向下滚动它。我无法直接向下滚动工作表。

任何帮助将不胜感激。


您可以使用而不是使用滚动视图嵌套滚动视图更好地与协调器布局确保使用应用程序:layout_behavior =“@ string / appbar_scrolling_view_behavior”用于在 NestedScrollView 内平滑滚动内容

mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
        @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState) {
            if (newState == BottomSheetBehavior.STATE_COLLAPSED) {
                mBottomSheetBehavior.setPeekHeight(0);
            }
        }

        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset) {
        }
    });

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_negetive: {
            mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
            mBottomSheetBehavior.setPeekHeight(Constants.PEEK_HEIGHT);
            mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            break;
        }
        case R.id.btn_positive: {
            //some code
        }
    }
}

使用此链接上述解决方案对我有用:https://code.tutsplus.com/articles/how-to-use-bottom-sheets-with-the-design-support-library--cms-26031 https://code.tutsplus.com/articles/how-to-use-bottom-sheets-with-the-design-support-library--cms-26031

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 底页 - 滚动问题 的相关文章

  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • Android Studio 无法识别 Mac/Linux 上的 OnePlus2

    我的 Android Studio 1 3 2 无法识别我的手机 一加二号 我有 Mac OS x Yosemite 10 10 5 和最新的 Android SDK 更新1 我的Mac上安装的文件传输软件 Android File Tra
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 插件“Android Bundle Support”不兼容

    大家好 自从上次更新以来 当我启动 android studio 时 我遇到了一个非常奇怪的错误 我有这个错误 插件错误 插件 Android Bundle Support 不兼容 直到构建 AI 195 SNAPSHOT 我在网上找不到任
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一
  • 有没有任何代码可以在android中设置壁纸而无需裁剪和缩放?

    我正在创建一个画廊应用程序 我的第一个应用程序 这是我的代码 Bitmap bmd BitmapFactory decodeStream is try getApplicationContext setWallpaper bmd catch
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 如何将 REST 请求转发到另一个资源?

    在我当前的架构中 我有一个位于后面的 JAX RS 资源 categories categories catId 是这样实现的 Path categories Produces application json public class C
  • jquery Mobile Tap 和冒泡/传播

    在 android 2 x 浏览器中查看此示例 它是在我的应用程序中复制场景的示例 http johnchako net samples tap html http johnchacko net samples tap html 它是关于监
  • Ionic 3:安装 cordova-plugin-camera 和 Native Web-intent 后 Android 添加平台失败

    首先 感谢您抽出时间来帮助我 Summary 尝试将 cordova plugin camera 添加到我的 ionic 3 项目中 经过多次失败并最终成功后 现在我的应用程序不再在我的 Android 上构建 开始编辑 经过多次测试 当我
  • Polymer 中动态生成的 HTML 的数据绑定?

    当我在我的里面写下以下内容时
  • 以数据帧作为输入的模型上的多重处理

    我想在模型上使用多重处理 以使用数据帧作为输入来获得预测 我有以下代码 def perform model predictions model dataFrame cores 4 try with Pool processes cores
  • 设置自定义视图的样式

    我的 Android 项目中有一些自定义视图 并且我已将相关详细信息添加到 attrs xml 文件中 现在我可以通过 XML 实现我的对象 这很好用 我如何设计这些元素的样式 当我尝试在 styles xml 中使用自定义属性时 出现错误
  • 从 MYSQL DB 中搜索电话号码

    我有一张桌子phone柱子 其中的电话看起来像 1 123 456 3780 如果用户在搜索字段 35 中输入 我应该向他显示所有拥有手机的用户 3 534 000 1010 1 350 000 9090 1 003 534 2343 1
  • Signal-R 如何适应 IIS 激活模型?

    我正在学习 Signal R 这是我一直以来的想法 Signalr 如何融入 IIS ASP NET 生命周期 集线器的寿命有多长 我看到它们有重新连接语义 IIS 是否会阻止具有持久连接的 AppDomain 关闭 据我了解 IIS 旨在
  • 搜索二维数组内的子数组(图像识别)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 本质上 我有一个 numpy 图像数组 我试图查找它是否包含特定 RGB 像素值的 2x2 块 因此 例如 如果我的 简化的 图像数组类似
  • 多核机器上的 Hadoop 和 Map-Reduce

    我读过很多关于在机器集群上运行的 Hadoop 和 Map Reduce 的内容 有人知道 Apache 发行版是否可以在具有多个内核的 SMP 上运行吗 特别是 多个Map Reduce进程是否可以在同一台机器上运行 调度程序将负责将它们
  • .NET OutputCache 指令不起作用

    我一直遇到奇怪的缓存问题 并将一个非常简单的 NET 页面与输出缓存指令放在一起 但是 该页面不会缓存 内容会在每次刷新时更新 我在本地计算机 Windows 7 上安装了一个简单 最小的 CMS 站点 Ektron v 9 0 SP2 在
  • 有没有办法将数据从 .csv 导入到活动 Excel 工作表?

    我有一个始终以相同名称命名的 csv 文件 名为 SO2PO csv 我将其中的数据导入到名为 PO 数据 的 Excel 工作表中 该工作表位于名为 未结订单 的工作簿中 我需要找到一种方法将 SO2PO csv 中的所有数据导入到 Op
  • 为什么我的样式包在 ASP.NET MVC 4 中无法正确呈现?

    所以我是 ASP NET MVC 4 的新手 嗯 我用过一点 3 无论如何 在我的 BundleConfig cs 文件中 我尝试加载 Twitter Bootstrap css 文件和附加的site css file 但仅呈现 site
  • 正确预防 PHP 中的邮件注入

    你能告诉我如何预防吗电子邮件注入 http en wikipedia org wiki Email injection in PHP mail 而不丢失原始消息数据 例如 如果我需要允许用户使用 r n To CC等等 所以我不想将它们完全
  • VS 2015 中未解决 Microsoft.NETCORE.app 依赖关系

    我在使用 Visual Studio 2015 时遇到问题 当我创建新的 CORE 1 0 项目时 引用显示错误 指出 NETCoreApp 无法解析 当我打开project json 文件时 Microsoft NETCore App 带
  • 在页面内容上方浮动一个 div [重复]

    这个问题在这里已经有答案了 我实现了一个动态显示搜索选项的弹出框 我希望该框 浮动 在所有网站内容之上 目前 当显示该框时 它会取代其下方的所有内容 并且看起来很糟糕 我相信我已经尝试将框的 div 的 z index 设置为高于其余页面内
  • 恢复 SQL Server 2005 数据库后将所有用户链接到登录

    请注意 此问题询问有关链接所有用户的问题 这与询问有关链接单个用户的可能重复问题不同 我希望在两台服务器之间移动数据库 我已经从第一台服务器备份了数据库 并在第二台服务器上进行了数据库恢复 到目前为止一切顺利 然而 我们的应用程序使用了数据
  • 在后台使用 prawn 和 resque 生成 pdf

    我正在尝试通过 Resque 后台作业在后台创建 PDF 文档 我用于创建 PDF 的代码位于 Rails 辅助方法中 我想在 Resque 工作线程中使用该方法 例如 class DocumentCreator queue documen
  • php循环列表中的随机产品[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有来自女巫的产品列表 我需要随机显
  • Android 底页 - 滚动问题

    我需要底部纸张停在两个位置 我有以下底页代码