Android 判断是否应该使用多 fragment 布局

标签 android android-fragments

在为 Android 3.x 制作应用程序时,您基本上可以只检查设备是否横向,看它是否可以并排放置多个 fragment 。但这只是因为你基本上可以保证该设备是平板电脑。

随着兼容性库和 android 4.0 的引入,我想不出什么是“好”的方法来确定我是否可以摆脱并排 fragment 或应该恢复到每个标准一个 fragment '屏幕。'

在 NewsReader 示例应用程序中,Google 为每个常见的分辨率都有一个特殊的值文件,每个文件都有一个 bool 值来表示该分辨率是否应该支持 2 fragment 布局,但我认为这种方式构思不佳。我能想到的唯一方法是检查屏幕的大小(猜测它是平板电脑还是至少大到不会破坏布局),然后检查方向。

因此,如果有人知道如何轻松有效地检查它,请告诉我!

最佳答案

您实际上可以使用以下命令查看屏幕尺寸类型(小、正常、大等):

getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK

这将返回一个整数,您可以根据以下任何一项进行检查:

Configuration.SCREENLAYOUT_SIZE_SMALL
Configuration.SCREENLAYOUT_SIZE_NORMAL
Configuration.SCREENLAYOUT_SIZE_LARGE
Configuration.SCREENLAYOUT_SIZE_UNDEFINED

然后你可以检查方向,使用

getResources().getConfiguration().orientation

哪个会匹配以下任何一种可能性

Configuration.ORIENTATION_PORTRAIT
Configuration.ORIENTATION_LANDSCAPE
Configuration.ORIENTATION_SQUARE
Configuration.ORIENTATION_UNDEFINED

有了这个,您基本上可以通过根据屏幕尺寸和方向在空间允许的情况下添加您的 fragment 来模拟多个 View 。

关于Android 判断是否应该使用多 fragment 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640759/

相关文章:

java - 如何修复未使用微调器自定义适配器中的代码选中复选框的问题?

java - 十六进制字符串到 int 的转换无法正常工作

java - 单击项目时在 ListView 中使用 Intent 打开不同的 fragment

java - android.widget.ImageView 无法转换为 com.parse.ParseImageView

java - fragment 中的 ListView

java - Android mediaPlayer setDataSource 失败并给出 IOException

android - 为什么 android 没有将 String 值放入 JSONObject 的函数?

android - 强制在android中的searchview中写大写

android - 如何在 FragmentPagerAdapter 中设置菜单项监听器 (onMenuItemSelected)?

java - 如何从Android中的fragment中获取相机图像