bam*_*bam 10 android screen-size dialogfragment
我想要实现的目标
谷歌在其日历应用中实施的小/大屏幕行为.
例如,当您创建新事件时,在大屏幕上会打开"对话框"
在纵向模式下,对话框工具栏的底部与活动的"扩展"工具栏的底部对齐.
上下文操作栏(例如用于文本选择)是在活动的工具栏上绘制的,并向下推动对话框,因此它不再与活动的工具栏相关联.
在横向模式下,它似乎固定在通知栏下方; 上下文操作栏是在活动的工具栏上绘制的
在小屏幕上
到目前为止我尝试过的
A.从android文档中全屏显示DialogFragment示例(不能再添加缺少声誉的b/c链接)
B.添加(感谢stackoverflow上的一些帖子)
对话框片段样式:
setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogFragmentStyle);
<style name="MyDialogFragmentStyle" parent="@style/MyTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowIsFloating">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)删除了窗口标题
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)添加了自定义工具栏
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:homeAsUpIndicator="@drawable/ic_arrow_back_white_24dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar" >
</FrameLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)并在小型设备上将对话框设置为全屏
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
Run Code Online (Sandbox Code Playgroud)这有点工作,它解决了我想要达到的一些要点和A.'Android样本'问题(透明背景,...)
使背景中的活动变暗
工具栏始终位于同一位置,并且永远不会被屏幕键盘推出视图
在纵向模式下,对话框工具栏的底部与Activity的"扩展/大"工具栏的底部对齐.上下文操作栏(例如用于文本选择)是在活动的工具栏上绘制的,并向下推动对话框,因此它不再与活动的工具栏相关联.
在横向模式下,它似乎固定在通知栏下方; 上下文操作栏是在活动的工具栏上绘制的.
它填满了屏幕
通过对话框的工具栏绘制上下文操作栏
所以,我的第一篇文章有点长篇大论 - 感谢所有到目前为止阅读的人.
我一直在研究这个主题很长一段时间了.有些人说对话片段不适合非全屏显示,并且应该将活动设置为看起来像对话框.其他人说,将活动设计为看起来像对话框b/c这是DialogFragments的用途是不好的做法.关于这个话题似乎没有广泛的一致意见.
有没有人对Google如何在其日历应用中实现此功能有任何见解?(遗憾的是,在AOSP来源中,只有旧的日历应用程序可用).
有没有办法用对话框片段满足我的所有要求?
非常感谢迈克尔
btw:使用支持库DialogFragment在Android 4.1平板电脑,小型设备Android 4.1和5.0上进行大型设备测试,但过渡到"正常"的DialogFragment.
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |