我想在我的 android 应用程序中使用一个活动作为一个对话框。到目前为止,我已经使用过,AlertDialogs
但我想让我的应用程序更花哨。我对此进行了大量研究,但找不到令人满意的答案。
我分别为 java 和 xml 文件创建了一个名为DialogActivity.java
和的新活动。dialogactivty
那么,如何将此活动称为其他活动中的对话框?
和
如何给这个活动一个圆角矩形对话框形状?提前致谢!
您可以将对话框主题设置为活动
<activity android:theme="@android:style/Theme.Dialog" />
并使用
<activity android:theme="@android:style/Theme.Holo.Dialog" /> // api level 11 and above
在清单中进行所需的活动。
您需要使用startActivity(intent)
从官方文档,
如果您想要自定义对话框,则可以将 Activity 显示为对话框,而不是使用 Dialog API。只需创建一个活动并将其主题设置
Theme.Holo.Dialog
为清单元素:<activity android:theme="@android:style/Theme.Holo.Dialog" >
而已。该活动现在显示在对话框窗口中,而不是全屏显示。
用于Theme.Dialog
API 10 或更低版本。
尝试这个 :
android:theme="@android:style/Theme.Dialog">
在清单中输入您需要的活动。
@ChinmayDabke 要使用圆角显示,您需要shape
使用 xml 创建一个新的并将其设置为背景可绘制对象。确保还为您的活动设置透明度。有关这方面的更多详细信息,有许多可用的最新主题 - 我只是想快速回答这篇旧帖子,因为你已经问过了!
我的错误 - 你不需要设置为透明 - 我的意思是说不设置标题栏!
例子:
在res/drawable文件夹中为圆形背景创建一个 Shape :
shape_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/colorOfActivityHere"/>
<corners
android:radius="12dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
然后将形状设置为活动父布局的背景:
布局活动.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:background="@drawable/shape_background"
android:orientation="vertical">
...
</LinearLayout>
在您的 Activity.java 中,不设置标题栏:
活动.java
requestWindowFeature(Window.FEATURE_NO_TITLE);