如何将 Activity 呈现为平板电脑上的覆盖窗口?这方面的一个例子是新的 Google+ 应用程序,如下所示:
重要的是,我希望 ActionBar 成为窗口的一部分,并使下面的 Activity 变暗,如屏幕截图所示。
谢谢
如何将 Activity 呈现为平板电脑上的覆盖窗口?这方面的一个例子是新的 Google+ 应用程序,如下所示:
重要的是,我希望 ActionBar 成为窗口的一部分,并使下面的 Activity 变暗,如屏幕截图所示。
谢谢
您可以只使用对话框主题。为此,只需在 Manifest 中写入:
android:theme="@android:style/Theme.Dialog"
或者
android:theme="@android:style/Theme.Holo.Dialog"
或者只是通过在 styles.xml 中创建自己的主题:
<style name="MyDialogTheme" parent="Theme.Holo.Dialog">
...
</style>
您可以通过在 values-xlarge 或 values-large 文件夹中创建 styles.xml 来为 xlarge 或大屏幕设置此类主题。
如果您只想为平板电脑设置此主题,则可以通过检查屏幕大小来动态更改主题,如下所示:
if (Configuration.SCREENLAYOUT_SIZE_XLARGE)
{
//setTheme(yourDialogTheme);
}
如果您想与操作栏对话,请检查此答案。您可以通过创建自定义对话框来做到这一点。
编辑:来自google group post的回答。在带有样式的 xml 中尝试此操作:
<style name="PopupTheme" parent="android:Theme.Holo.Light.Dialog">
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowIsTranslucent">true</item>
</style>
在 Java 代码中
public static void showAsPopup(Activity activity) {
//To show activity as dialog and dim the background, you need to declare android:theme="@style/PopupTheme" on for the chosen activity on the manifest
activity.requestWindowFeature(Window.FEATURE_ACTION_BAR);
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
LayoutParams params = activity.getWindow().getAttributes();
params.height = LayoutParams.FILL_PARENT;
params.width = 850; //fixed width
params.alpha = 1.0f;
params.dimAmount = 0.5f;
activity.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
}
你应该Theme.Dialog
在你Manifest.xml
的活动中使用
android:theme="@android:style/Theme.Dialog"
以备将来使用,您应该在 values/values-11/values-14-> styles.xml
(EDIT)中使用 CustomTheme
编辑:
<activity
android:name="com.apps.ActivityP"
android:theme="@style/CustomTheme"/>
在你的价值观styles.xml
文件夹中
<style name="CustomTheme" parent="android:Theme.Black">
例如你 values-11/14styles.xml
文件夹
<style name="CustomTheme" parent="android:Theme.Holo.Dialog">
您需要扩展您的活动主题
Theme.AppCompat.Light.DialogWhenLarge
或者
Theme.Holo.DialogWhenLarge
这是一个例子
<style name="AppTheme.DialogActivity" parent="Theme.AppCompat.Light.DialogWhenLarge">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorPrimary</item>
<!-- Your theme here -->
</style>