【问题标题】:Using the Master/Detail template in ViewPager Fragments (download link)在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)
【发布时间】:2016-06-23 22:07:42
【问题描述】:

工作代码: https://github.com/lukeallison/ViewPagerMasterDetail

Android Master/Detail Flow 模板: http://developer.android.com/tools/projects/templates.html#master-detail-activity

描述:使用 Android Studio 中可用的 Master/Detail Flow 模板,我的应用程序利用 ViewPager 来管理三个 Parent 片段。第三个片段是 Master(列表),其中有一个 Child(详细)片段。

问题:

  1. fragment_item_list 首次膨胀时,应用栏会将列表的最后一项推到屏幕边界下方。旋转设备后,此问题不再存在。简单地在屏幕底部添加填充不会解决问题,因为它会在旋转后在屏幕底部留下不需要的空间。许多 SO 线程未能解决此问题。 - 已修复
  2. 需要android:configChanges="orientation|keyboardHidden|screenSize",以便子(细节)片段在旋转时膨胀正确的布局。我不想强制执行此操作。请帮助修复此错误。
  3. 使用已弃用的 setOnPageChangeListener 和 onAttach(Activity)
  4. 将依赖项升级到 23.2.0 会导致 ItemListFragment 在旋转时无法膨胀正确的 Fragment,因此我无法更新应用程序中的库
  5. 代码可能比必要的更麻烦

请帮我修复这些错误,以便我们有一个我自己和其他人都可以使用的模板。

【问题讨论】:

  • 我无法在我的 4.4.2 Android 中重现该错误。我无需轮换即可查看主列表中的所有 25 个项目。你用的是什么版本?添加一些屏幕截图以更好地解释绑定问题。 'ItemListFragment':您的仓库中没有具有该名称的片段。你的意思是“ItemDetailFragment”吗?也许您忘记推送最后的更改?
  • 请尝试更新的存储库。我一开始推错了项目。

标签: android android-layout android-fragments android-viewpager master-detail


【解决方案1】:

错误修复。 fragment_item_list.xml 中的列表现在在初始和后续布局膨胀时显示列表的最后一个元素。我在 style.xml 中添加了<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">,在 ItemListFragment.java 的 initLayout 方法中添加了((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);

【讨论】:

  • 这远非一个好的解决方案。充其量是一个黑客。如果我想要一个工具栏怎么办?如果我在顶部有一个自定义布局,在运行之前我无法知道它的高度。
猜你喜欢
  • 2013-01-10
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
相关资源
最近更新 更多