0

我想做一个像“对话”这样的活动,到目前为止我知道两种方法:

方式1)在Android ApiDemos中,通过在activity中添加属性来实现,如

android:theme="@android:style/Theme.Dialog">

结果是:新 Activity 出现在现有 Activity 之上,这就是我想要的。

方式2)我尝试setTheme(android.R.style.Theme_Dialog)Activity.onCreate(Bundle)方法中调用,新的活动也出现了,但背景全黑。这不是我想要的。代码如下:

            super.onCreate(savedInstanceState);
            setTheme(android.R.style.Theme_Dialog);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.selecte_date);

谁能告诉我如何通过编写Java代码来实现效果?

4

1 回答 1

0

最简单的方法是在您的 xml 中添加第二个布局,这是现有布局的覆盖。然后您可以将叠加层设置为在您的活动中可见。因此,您在 1 个活动中获得了多个视图。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/transparent"  >
<LinearLayout

    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:background="@android:color/transparent">

    <ImageView
        android:id="@+id/icon" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>

    <TextView 
        android:id="@+id/title"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />

</LinearLayout>
<LinearLayout
    android:layout_alignParentTop="true"
    android:id="@+id/overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/translucent_black"
    android:visibility="false" >
</LinearLayout>
</RelativeLayout>
于 2012-11-06T10:25:03.097 回答