android - DialogFragment 中的 ActionBar

标签 android android-actionbar android-dialogfragment

在我的 Galaxy Tab 10.1 上的日历应用程序中,当创建一个新事件时,会在标题栏/操作栏区域出现一个对话框,其中包含完成和取消按钮。

enter image description here

我想在我的应用中实现这一点。除了在我的 DialogFragment 子类中覆盖 onCreateOptionsMenu 之外,我还尝试使用 setHasOptionsMenu(true),但我的操作项没有出现。我也试过从 onCreateView 中调用 getDialog().getActionBar() 但它总是返回 null

如果我启动一个 Activity 而不是显示一个对话框,但它会占据整个屏幕,我就可以让它工作。有没有使用 DialogFragment 的标准方法?

最佳答案

使用来自 google group post 的想法我能够把它从造型 Activity 中拉出来。您最好将高度和宽度修改为您选择的“动态”大小。然后设置你想要的任何 ActionBar 按钮

<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>

--

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 = 850; //fixed height
    params.width = 850; //fixed width
    params.alpha = 1.0f;
    params.dimAmount = 0.5f;
    activity.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); 
    setContentView(R.layout.activity_main);
}

关于android - DialogFragment 中的 ActionBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425020/

相关文章:

android - 操作栏位置问题

android - 操作栏 Sherlock 下拉微调器分隔线

android - xamarin 中的空对话 fragment

java - FirebaseInAppMessagingClickListener 不调用 android

Android:纵向模式下的相机预览方向

android - 如何以编程方式更改操作栏项目的背景颜色

android - DialogFragment 中的 RecyclerView -> 拖放(交换)动画滞后

android - 全屏 DialogFragment 关闭 Activity

android - 为什么我在 Google Play 控制台中收到 SMS 和 CALL_LOG 警告,而我的应用程序甚至没有使用任何接近这些权限的东西?

android - Windows Phone 7 可折叠列表