d-m*_*man 248 android android-dialog android-activity
我有一个名为Activity的whereActity
子对话框.现在,我想将此活动显示为另一个活动的对话框.
我怎样才能做到这一点?
d-m*_*man 528
要以对话框的形式启动活动,我将其定义为AndroidManifest.xml
:
<activity android:theme="@android:style/Theme.Dialog" />
Run Code Online (Sandbox Code Playgroud)
在activity
标记内使用此属性可避免对话框出现在最近使用的应用列表中
android:excludeFromRecents="true"
Run Code Online (Sandbox Code Playgroud)
如果要在用户单击对话框外部时停止销毁对话框/活动:
之后setContentView()
在您的Activity
使用:
this.setFinishOnTouchOutside(false);
现在当我调用startActivity()
它时显示为对话框,当用户按下后退按钮时显示先前的活动.
请注意,如果您正在使用ActionBarActivity
(或AppCompat主题),则需要使用@style/Theme.AppCompat.Dialog
.
小智 42
使用此代码,以便在用户触摸对话框外时不会关闭对话框活动:
this.setFinishOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)
需要API级别11
her*_*rtD 27
您可以在values/styles.xml中定义此样式以执行更多以前的Splash:
<style name="Theme.UserDialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@drawable/trans</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并使用AndroidManifest.xml:
<activity android:name=".SplashActivity"
android:configChanges="orientation"
android:screenOrientation="sensor"
android:theme="@style/Theme.UserDialog">
Run Code Online (Sandbox Code Playgroud)
M. *_*han 22
1 - 您可以动态地使用与对话框和全屏幕相同的活动:
呼叫setTheme(android.R.style.Theme_Dialog)
调用之前setContentView(...)
和super.oncreate()
你的活动.
2 - 如果您不打算更改可以使用的活动主题样式
<activity android:theme="@android:style/Theme.Dialog" />
Run Code Online (Sandbox Code Playgroud)
(如@faisal khan所述)
nef*_*tou 17
如果您需要Appcompat版本
style.xml
<!-- Base application theme. -->
<style name="AppDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<!-- Customize your theme here. -->
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
yourmanifest.xml
<activity
android:name=".MyActivity"
android:label="@string/title"
android:theme="@style/AppDialogTheme">
</activity>
Run Code Online (Sandbox Code Playgroud)
aar*_*ell 16
如果您的活动是作为对话框呈现的,只需在活动的xml中添加一个按钮,
<Button
android:id="@+id/close_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Dismiss" />
Run Code Online (Sandbox Code Playgroud)
然后在Activity的Java代码中附加一个单击侦听器.在听众中,只需打电话finish()
Button close_button = (Button) findViewById(R.id.close_button);
close_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Run Code Online (Sandbox Code Playgroud)
那应该会关闭你的对话框,让你回到调用活动.
如果要删除活动标题并为对话框提供自定义视图,请将以下内容添加到清单的活动块中
android:theme="@style/Base.Theme.AppCompat.Dialog"
Run Code Online (Sandbox Code Playgroud)
并使用您想要的视图设计您的activity_layout
归档时间: |
|
查看次数: |
239548 次 |
最近记录: |