【问题标题】:Dialog fragment embedding depends on device对话框片段嵌入取决于设备
【发布时间】:2012-06-12 11:59:19
【问题描述】:

在我的应用中,用户从联系人或通话记录中选择电话号码。选择联系人非常简单,并且在手机和平​​板电脑上都很好用 - i。 e.在手机上弹出新的全屏活动,在表格上我看到带有联系人列表的漂亮弹出对话框。

似乎没有办法从通话记录中选择电话号码,所以我不得不实现自己的活动(通过 ListFragment)。我想实现与联系人相同的行为 - 在平板电脑上我想看到带有列表视图的弹出对话框,在手机上我想看到全屏活动。

可以实现在此图片上绘制的内容,而无需使用类似以下代码:“如果这是表格,则显示弹出窗口,否则启动新活动”,并且仅使用根据设备自动选择的样式/布局?

【问题讨论】:

  • 您只需要检查是否有 Fragment 的占位符...并将此占位符仅放在“平板电脑布局”中...因此,如果有占位符,您只需使用 fragmentManager 放置此列表片段那里......如果不是你必须开始包含这个片段的活动......
  • 不错,没想到。

标签: android dialog android-fragments


【解决方案1】:

似乎最简单的解决方案 - 我使用 ListFragment 并且不想将其牺牲给 DialogFragment - 是根据分辨率(和平台)创建不同的主题。

例如:

AndroidManifest.xml

<activity
    android:name="CallLogActivity"
    android:theme="@style/dialog_or_activity">
</activity>

\values-xlarge-v11\styles.xml

<resources>
    <style name="dialog_or_activity" parent="android:Theme.Holo.Light.Dialog">                 
    </style>
</resources>

\values\styles.xml

<style name="dialog_or_activity" parent="android:Theme">        
</style>

【讨论】:

  • 你也可以试试片段对话框代替“活动对话框”(CallLogActivity)android-developers.blogspot.com/2012/05/…
  • 是的,但是我不能使用 ListFragment 并且必须编写额外的代码来实现它的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多