代码之家  ›  专栏  ›  技术社区  ›  powder366

奥利奥未提及的属性、风格和主题

  •  0
  • powder366  · 技术社区  · 7 年前

    在Oreo下,我的主题停止工作(在较低级别的API上工作),并且没有被拾取。我有以下几点:

    报告布局。xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/company_list_header"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="?companyTextTitle">
    

    属性。xml

    <attr name="companyTextTitle" format="reference"/>
    

    主题。xml

    <style name="Theme.Black" parent="Theme">
        <item name="companyTextTitle">@style/company_text_title</item>
    </style> 
    
    <style name="Theme" parent="android:Theme">
        <item name="android:listViewStyle">@style/list</item>
        <item name="android:absListViewStyle">@style/list</item>
        <item name="android:editTextStyle">@style/edittext</item>   
        <item name="android:buttonStyle">@style/stdbutton</item>        
        <item name="android:spinnerStyle">@style/spinner</item>   
        <item name="android:spinnerItemStyle">@style/spinneritem</item>   
        <item name="android:checkboxStyle">@style/checkbox</item>   
        <item name="android:radioButtonStyle">@style/radio</item>    
        <item name="android:preferenceStyle">@style/preference</item>    
        <item name="android:listChoiceIndicatorSingle">@drawable/btn_radio</item>         
        <item name="android:spinnerDropDownItemStyle">@style/spinnerradio</item>    
        <item name="android:buttonBarButtonStyle">@style/stdbutton</item>                               
    </style> 
    

    样式。xml:

    <style name="company_text_title">
        <item name="android:textColor">#000000</item>
        <item name="android:textStyle">bold</item>
        <item name="android:gravity">center_vertical|left</item>
        <item name="android:paddingLeft">2sp</item>
        <item name="android:paddingRight">2sp</item>
        <item name="android:background">#004488</item>
    </style>
    

    在我的活动中:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.report_layout);
        setTheme(R.style.Theme_Black);
    

    显示:

    <supports-screens 
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="false" 
        android:anyDensity="true"/> 
    
        <activity android:name=".ReportList" android:label="@string/app">
            <intent-filter>
                <action android:name="com.xyz.app.REPORTLIST"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
    

    compileSdkVersion 25
    buildToolsVersion '25.0.3'
    
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 14
    }
    

    不喜欢:

    style="?companyTextTitle">
    

    style="@style/company_text_title"> 
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   powder366    7 年前

    发现问题,必须设置:

    setTheme(R.style.Theme_Black);
    

    之前:

    setContentView(R.layout.report_list);
    

    即。

    setTheme(R.style.Theme_Black);
    setContentView(R.layout.report_layout);
    

    话说回来,在奥利奥之前,它也会以另一种方式工作。。。