Mil*_*ilo 9 android tablet android-activity
如何在平板电脑上呈现活动作为叠加窗口?这方面的一个例子是新的Google+应用,如下所示:

重要的是,我希望ActionBar成为窗口的一部分,并且下面的Activity将变暗,如屏幕截图所示.
谢谢
Yur*_*kov 10
您可以使用对话框主题.要做到这一点,只需写入Manifest:
android:theme="@android:style/Theme.Dialog"
Run Code Online (Sandbox Code Playgroud)
要么
android:theme="@android:style/Theme.Holo.Dialog"
Run Code Online (Sandbox Code Playgroud)
或者只是在styles.xml中创建自己的主题:
<style name="MyDialogTheme" parent="Theme.Holo.Dialog">
...
</style>
Run Code Online (Sandbox Code Playgroud)
您可以通过在values-xlarge或values-large文件夹中创建styles.xml来为xlarge或大屏幕设置此类主题.
如果您只想为平板电脑设置此主题,则可以通过检查屏幕大小来动态更改主题,如下所示:
if (Configuration.SCREENLAYOUT_SIZE_XLARGE)
{
//setTheme(yourDialogTheme);
}
Run Code Online (Sandbox Code Playgroud)
如果您想要与操作栏对话,请检查此答案.您可以通过创建自定义对话框来完成此操作.
编辑:谷歌组帖子的答案.在你的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>
Run Code Online (Sandbox Code Playgroud)
在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);
}
Run Code Online (Sandbox Code Playgroud)