można po prostu użyć motywu dialogowe. Aby to zrobić, wystarczy napisać w manifeście:
android:theme="@android:style/Theme.Dialog"
lub
android:theme="@android:style/Theme.Holo.Dialog"
lub po prostu tworząc własny motyw w styles.xml:
<style name="MyDialogTheme" parent="Theme.Holo.Dialog">
...
</style>
Można ustawić taki motyw dla Xlarge lub duży ekran, tworząc plik styles.xml w wartościach-xlarge lub wartości-duże foldery.
Jeśli chcesz ustawić ten temat tylko dla tabletek, można zmienić motyw dynamicznie poprzez sprawdzenie rozmiaru ekranu tak:
if (Configuration.SCREENLAYOUT_SIZE_XLARGE)
{
//setTheme(yourDialogTheme);
}
Proszę sprawdzić tę odpowiedź, jeśli chcesz dialog z paska akcji. Możesz to zrobić, tworząc własne okno dialogowe.
Dialog themed activity with action bar
Custom dialog
EDIT: Odpowiedź z google group post.Spróbuj tego w xml ze stylami:
<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>
W kodzie 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);
}
Próbowałem to i to ma wpływ na moje Nexus 10. My manifeście: Styles.xml - @ android: kolor/przezroczysty
- @ android: kolor/przezroczysty
–
Milo
Powinieneś również sprawdzić to [link] (http : //developer.android.com/guide/topics/ui/themes.html) – Oli
Dzięki, android: Theme.Holo.Dialog załatwił sprawę. Nie wiem dlaczego, być może nadpisałem inne style gdzie indziej. Jednak wydaje mi się, że nie można używać ActionBara przy użyciu tego motywu. Otrzymuję wywołanie nullpointer: actionBar.setDisplayHomeAsUpEnabled (true); – Milo