android 中模態框

在activity A中點擊一個設置按鈕彈出ActivityB,在B頁面進行完相應的操作之後,又回到A頁面,B頁面是辦透明顯示在A頁面上面的
下面是代碼

Activity A相關代碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:background="@color/colorPrimary"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:text="Activity A"
        android:textSize="20pt" />

<Button
    android:id="@+id/open_activity_b"
    android:layout_width="match_parent"
    android:layout_marginTop="25dp"
    android:layout_height="wrap_content" android:textSize="14pt"
    android:text="打開Activity B"/>
</LinearLayout>
package com.greatzee.modelprogress;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
Button open_activity_b;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        open_activity_b=(Button) findViewById(R.id.open_activity_b);
        View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intentSet = new Intent(MainActivity.this, SetActivity.class);
                intentSet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                MainActivity.this.startActivity(intentSet);
            }
        };
        open_activity_b.setOnClickListener(onClickListener);
    }
}

下面時Activity B相關代碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    style="@style/MyModelSetting"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".SetActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"></LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:background="@color/colorPrimary">

        <Button
            android:id="@+id/close_activity"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="關閉當前頁面" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"></LinearLayout>
</LinearLayout>
package com.greatzee.modelprogress;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.Set;

public class SetActivity extends AppCompatActivity {
Button close_activity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActionBar actionbar = getSupportActionBar();
        if (actionbar != null) {
            actionbar.hide();
        }
        setContentView(R.layout.activity_set);
        close_activity=(Button) findViewById(R.id.close_activity);
        close_activity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SetActivity.this.finish();
            }
        });
    }
}

相關的樣式代碼

 <style name="MyModelSetting" parent="Theme.AppCompat">
        <!--背景色,此處的背景色請一定要設置爲透明度背景色-->
        <item name="android:windowBackground">@color/transparent</item>
        <!--window Is Translucent 窗口是半透明的-->
        <item name="android:windowIsTranslucent">true</item>
        <!--window No Title窗口無標題-->
        <item name="android:windowNoTitle">true</item>
        <!--彈出動畫-->
        <item name="android:windowAnimationStyle">@null</item>
    </style>
 <color name="transparent">#80333333</color>

下面是AndroidManifest.xml

 <activity android:name=".SetActivity"  android:theme="@style/MyModelSetting" ></activity>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章