如何处理支持/设计库的新底页问题?

2024-01-03

背景

我使用了修改后的版本底页 https://www.google.com/design/spec/components/bottom-sheets.html图书馆 (here https://github.com/AndroidDeveloperLB/ThreePhasesBottomSheet, 基于这个图书馆 https://github.com/Flipboard/bottomsheet,也写过这件事here https://stackoverflow.com/q/34160423/878126),以便在折叠(又名“窥视”)状态和展开状态之间实现良好的过渡。

图书馆有其问题,但总的来说,我已经解决了所有问题。

问题

最近我们发现,从所有广告网络屏幕返回到具有底部表单的屏幕后,底部表单会进入一种奇怪的展开状态。

我决定是时候尝试一下支持库的新底页(如图所示)here http://android-developers.blogspot.co.il/2016/02/android-support-library-232.html),但我发现它有很多基本的相关问题:

  1. 底部的纸张立即显示,但高度错误。
  2. 它必须立即配置其高度,不支持“wrap_content”,并且展开时也不能具有高度“match_parent”,因为它将位于其他视图(包括工具栏)之上。
  3. 当它被隐藏时,它仍然会对触摸事件做出反应并再次显示。
  4. 当我设置其初始状态时它会崩溃。

所有这一切甚至都没有尝试处理我想要的东西,这是我之前做过的三个阶段。

我尝试过的

起初,我以为我只是没有很好地使用这个库,所以我尝试了我找到的两个示例:

  • https://github.com/vipulshah2010/BottomSheets https://github.com/vipulshah2010/BottomSheets
  • https://github.com/chikkutechie/androidexamples https://github.com/chikkutechie/androidexamples

我还尝试了在 StackOverflow 上找到的一些代码,但似乎所有示例都大致相同。

我注意到他们都有相同的问题,所以我报告了这些问题:

  • https://code.google.com/p/android/issues/detail?id=203114 https://code.google.com/p/android/issues/detail?id=203114
  • https://code.google.com/p/android/issues/detail?id=203115 https://code.google.com/p/android/issues/detail?id=203115
  • https://code.google.com/p/android/issues/detail?id=203113 https://code.google.com/p/android/issues/detail?id=203113
  • https://code.google.com/p/android/issues/detail?id=203654 https://code.google.com/p/android/issues/detail?id=203654

现在我尝试了各种方法来调查和解决问题,但仍然失败。

问题

有什么办法可以解决这些问题吗?使用支持库使用底部工作表的正确代码应该是什么?


UPDATE链接到完整答案 https://github.com/miguelhincapie/CustomBottomSheetBehavior在这里你可以找到关于如何获得像谷歌地图这样的完整行为的所有解释。


帮助你做你想做的事

我想要的,这是我之前做过的三个阶段

使用支持库 23.x+,您可以修改默认值BottomSheetBehavior通过以下步骤添加一项统计数据:

  1. 创建一个 Java 类并对其进行扩展CoordinatorLayout.Behavior<V>
  2. 从默认复制粘贴代码BottomSheetBehavior文件到您的新文件。
  3. 修改方法clampViewPositionVertical:

  4. 添加新状态

    公共静态最终 int STATE_ANCHOR_POINT = X;

  5. 修改以下方法:onLayoutChild, onStopNestedScroll, BottomSheetBehavior<V> from(V view) and setState(选修的)

所以现在你有这些状态:
状态_隐藏
STATE_COLLAPSED
状态_拖动
STATE_ANCHOR_POINT
STATE_EXPANDED。

您可以使用setBottomSheetCallback就像你在原版中所做的那样BottomSheetBehavior

XML(没有像谷歌地图这样的视差图像)看起来像:

<CoordinatorLayout>

    <FrameLayout/>

    <AppBarLayout>
        <CollapsingToolbarLayout>
            <Toolbar/>
        </CollapsingToolbarLayout >
    </AppBarLayout >

    <NestedScrollView>
        <LinearLayout/>
    </NestedScrollView>

</CoordinatorLayout >



我要添加一个链接到示例项目 https://github.com/miguelhincapie/CustomBottomSheetBehavior您可以在哪里找到您想要的东西

And here is how its looks like:
[CustomBottomSheetBehavior]

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

如何处理支持/设计库的新底页问题? 的相关文章

  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • 配置项目 ':react-native-gesture-handler' 时出现问题

    大家好 我已经尝试了很长时间来解决这个问题 但不幸的是我还没有弄清楚如何解决 希望你们能帮助我 所以我有一个反应本机项目和我的朋友 以及我的一位朋友添加 React native gesture handler 包供我们使用 他对这个包没有
  • 在 Android 中使用 awt

    我有一个绘制图表的 Java Swing 应用程序 它使用 Graphics2D 调用和 awt 对象 例如 Rectangle 等 在某些时候我可能想将其移植到 Android 上 我知道我无法在 Android 上使用 Graphics
  • 清晰的图标 清晰的 Android 应用程序

    你好 下午好 关于如何提高图标的 png 质量 有什么想法吗 我使用了 Android 开发者页面上的套件 但我无法获得清晰的图像 我的意思是非常清晰 我是否需要以不同的方式加载此图标 而不仅仅是拖入我的布局 谢谢 我使用这个布局
  • 如何使用retrofit2动态设置超时?

    public class Router private static Retrofit retrofit null public Retrofit getRetrofit if retrofit null OkHttpClient clie
  • 将项目添加到 android 框架的设置中

    我正在 android 框架中工作 我想向 android 操作系统中的现有设置添加一个项目 您能告诉我如何执行此操作吗 首先阅读有关偏好活动 http developer android com reference android pre
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • Android 音乐播放器应用程序:如何为服务中运行的媒体播放器设置完整的侦听器?

    我正在编写一个音乐播放器应用程序 我在服务中有 MediaPlayer 对象 问题是 我不知道如何从服务更新用户界面 例如 我想更新当前歌曲的剩余时间 但是 因为 MediaPlayer 正在服务 我无法设置 MediaPlayer 对象的
  • 如何从画布中删除路径区域(Android)

    我需要裁剪角落ImageView 不要将它们弄圆 而是擦除每个角上的三角形 似乎唯一的方法就是覆盖onDraw方法并使用从画布上删除这些区域Path 问题是我没有纯色背景 所以我需要擦除这些区域 但不要用某种颜色填充它们 我为此使用以下代码
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • 添加 play-services-maps 依赖项自动添加 glEsVersion 2.0 要求

    我想融入Google Play Services Maps module 由于地图清单声明
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android 两个 Activity 之间的共享元素转换不起作用

    在我的应用程序中 我尝试使用新引入的活动之间共享的元素 如果共享元素具有固定位置 例如 android layout gravity top 但是当视图被锚定时问题就出现了 我的第一个活动如下所示
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • 活动中列表视图中的粘滞行

    我的列表视图中只有一行应该是粘性的 而不是粘性标题中带有字母的部分或部分 我真的很感激任何关于列表视图在活动中粘性一行而不是片段的帮助 我该怎么做 我真的很感谢任何帮助 提前致谢 使用如下代码 class MyAsyncTask exten
  • Android SDK WebView调用Activity

    我试图在单击 WebView 组件内的链接时启动活动 我的Webview已加载到里面Main java我想启动SubActivity java当点击网站内的链接时Main java 另外 如何将参数传递给此活动 Example inspec
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv

随机推荐