1. 程式人生 > 程式設計 >解決Android Studio Design介面不顯示layout控制元件的問題

解決Android Studio Design介面不顯示layout控制元件的問題

Android Studio更新到3.1.3後,發現拖到Design中的控制元件在預覽介面中不顯示;

解決辦法:

在Styles.xml中的parent="..."中的Theme前新增Base

<resources>

  <!-- Base application theme. -->
  <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
  </style>

</resources>

補充知識:AndroidStudio XML檔案之style標籤詳解

前言:

Android的樣式一般定義在res/values/styles.xml檔案中,其中有一個根元素resource,樣式通過巢狀子標籤style來完成,style可以巢狀多個item標籤來設定不同的屬性,從而提高複用率。

什麼是Style:

style是一個標籤,該標籤裡可以巢狀多個item子標籤,通過item標籤的name設定不同的屬性,多個item組合起來就是一個style樣式

示例:

  <style name="DefaultProgressDialog" parent="android:style/Theme.Dialog" >
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

Style標籤裡面的屬性:

name="XXX" 定義該style樣式的name名稱

parent="XXX" 可以繼承自哪一個Style標籤,繼承以後可對父標籤已經有的屬性進行重寫

Style標籤裡可以巢狀的標籤:

item標籤的屬性:

name="XXX" name裡面的值可以為任意字串,對應的是某一個view的屬性值(如果要引用的view不存在這個屬性,預設為這個屬性無效(忽略這個屬性),並不會報錯)

自定義控制元件裡面的屬性值怎麼在style的item標籤裡宣告:

在主工程的時候要加上包名:

  <style name="navigationbar_radiogroup_style">
    <item name="com.mobeta.android.dslv.view:drawableSize">@dimen/dp20</item>
  </style>

在module或其他類庫的話,什麼都不用加:

  <style name="navigationbar_radiogroup_style">
    <item name="drawableSize">@dimen/dp20</item>
  </style>

常用item屬性:

視窗進出動畫設定:

  <style name="WheelSelect" parent="@android:style/Animation">
    <item name="android:windowEnterAnimation">@anim/wheel_select_enter</item>
    <item name="android:windowExitAnimation">@anim/wheel_select_exit</item>
  </style>

設定Dialog的屬性:

  <style name="DefaultProgressDialog" parent="android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

各屬性顏色的位置

解決Android Studio Design介面不顯示layout控制元件的問題

1.colorPrimary 應用的主要色調,actionBar預設使用該顏色,Toolbar導航欄的底色

2.colorPrimaryDark 應用的主要暗色調,statusBarColor預設使用該顏色

3.statusBarColor 狀態列顏色,預設使用colorPrimaryDark

4.windowBackground 視窗背景顏色

5.navigationBarColor 底部欄顏色

6.colorForeground 應用的前景色,ListView的分割線,switch滑動區預設使用該顏色

7.colorBackground 應用的背景色,popMenu的背景預設使用該顏色

8.colorAccent CheckBox,RadioButton,SwitchCompat等一般控制元件的選中效果預設採用該顏色

9.colorControlNormal CheckBox,SwitchCompat等預設狀態的顏色。

10.colorControlHighlight 控制元件按壓時的色調

11.colorControlActivated 控制元件選中時的顏色,預設使用colorAccent

12.colorButtonNormal 預設按鈕的背景顏色

13.editTextColor 預設EditView輸入框字型的顏色。

14.textColor Button,textView的文字顏色

15.textColorPrimary DisableOnly RadioButton checkbox等控制元件的文字

16.textColorPrimary 應用的主要文字顏色,actionBar的標題文字預設使用該顏色

17.colorSwitchThumbNormal: switch thumbs 預設狀態的顏色. (switch off)

以上這篇解決Android Studio Design介面不顯示layout控制元件的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。