How to open Activity as a dialog with ActionBar

后端 未结 3 829
独厮守ぢ
独厮守ぢ 2020-12-14 13:49

I want to open activity as dialog

public class MoveActivity extends Activity {
    private ListView list;
    private DocAdapter adapter;
    private ArrayLi         


        
相关标签:
3条回答
  • 2020-12-14 14:12

    For using action bar in Dialog, you have to create a custom theme in your style.xml with parent as "Theme.AppCompat.Light".

    <style name="PopupTheme" parent="Theme.AppCompat.Light">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowIsFloating">false</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
            <item name="android:windowSoftInputMode">stateAlwaysHidden</item>
            <item name="android:windowActionModeOverlay">true</item>
            <item name="android:colorBackgroundCacheHint">@null</item>
            <item name="android:windowCloseOnTouchOutside">true</item>
            <item name="android:windowIsTranslucent">true</item>
        </style>
    

    And add this style in your manifest with activity tag:

    <activity
                android:name=".MyActivity"
                android:configChanges="orientation|keyboardHidden|locale"
                android:screenOrientation="portrait"
                android:theme="@style/PopupTheme" >
    

    and last add this code in your activity before setConytentView(layoutID);

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.requestWindowFeature(Window.FEATURE_ACTION_BAR);
            this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            LayoutParams params = this.getWindow().getAttributes(); 
            params.alpha = 1.0f;
            params.dimAmount = 0.5f;
            this.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); 
    
            // This sets the window size, while working around the IllegalStateException thrown by ActionBarView
            this.getWindow().setLayout(600,900);
    
            setContentView(R.layout.dialog_move);
    }
    
    0 讨论(0)
  • 2020-12-14 14:16

    to Start activity as dialog i defined in AndroidManifest.xml

    <activity android:theme="@android:style/Theme.Dialog" />
    
    0 讨论(0)
  • 2020-12-14 14:29

    in the manifest file define theme for activity as dialog.

    <activity android:theme="@android:style/Theme.Dialog" />
    
    0 讨论(0)
提交回复
热议问题