1. 程式人生 > >使用appcompat_v7,實現Dialog型別無標題欄和ActionBar的Activity

使用appcompat_v7,實現Dialog型別無標題欄和ActionBar的Activity

直接上效果圖:
這裡寫圖片描述

    在實際開發中,我們往往需要用Activity來實現Dialog型別的佈局。那這樣的話,往往需要我們在styles中配置我們的相關的屬性配置。
    我今天跟大家講的是如何在使用AppCompat_v7包中的屬性,也就是你的activity繼承的並不是activity.可能如下的情況:
import android.support.v7.app.AppCompatActivity;

class BaseActivity extends AppCompatActivity{
    ......
}
    如果我們還要按以前的方式來設定dialog屬性的話,肯定是不行的。那我們該如何做呢?
    直接貼程式碼:
 <style name="AlertNoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item
name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item><!--除去title--> <item name="android:windowContentOverlay">@null</item> <!-- <item name="android:backgroundDimEnabled">false</item> -->
<!-- <item name="android:windowBackground">@null</item> --><!--除去背景色--> </style>
注意:在values 、values-v11、values-v14中的styles中都要寫一份。
對了,如果還想點選Dialog外部則訊息的話,大家可以做如下操作:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setFinishOnTouchOutside(true);
        setContentView(R.layout.cloud_info);
        }
當這些東西寫好後,那我們只要到清單配置檔案中載入主題樣式就可以達到以上的效果了。