断开默认背景,例如TabLayout和工具栏中的EditText或按下状态

时间:2016-05-21 09:21:33

标签: android nine-patch

我使用TabLayout作为ViewPager的标签。当我按下某个标签时,我会得到带有奇怪颜色标签的背景。并且独立于TabLayout的EditText背景也在奇怪的视图中。这在API 19中得到了结果。在API 22中,所有工作都完美无缺 aa

当我按下工具栏中的后退按钮时,我有类似的背景和奇怪的颜色

bb

有片段xml,我使用TabLayout和工具栏

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
                </android.support.v7.widget.Toolbar>


            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabMode="fixed"
                app:tabGravity="fill"
                app:tabIndicatorHeight="0dp"
                android:layout_marginBottom="10dp"
                />
        </android.support.design.widget.AppBarLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            />
    </android.support.design.widget.CoordinatorLayout>


这是我使用EditText的片段xml                                                

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="Заполните поля чтобы войти"
            android:textColor="@color/black"/>
         <EditText
                    android:id="@+id/edt_firstname"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Логин*"
                    android:textSize="15sp"
                    android:textColorHighlight="#F14040"
                    android:layout_marginTop="10dp"
                    style="@style/Base"
                    android:backgroundTint="@color/colorPrimary"
                    android:inputType="phone"
                    android:maxLength="13"
                    />
        <EditText
            android:id="@+id/lastname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Пароль"
            android:textSize="15sp"
            android:textColorHighlight="#F14040"
            android:layout_marginTop="10dp"
            style="@style/Base"
            android:backgroundTint="@color/colorPrimary"
            android:inputType="textPassword"
            />

这是我的风格xml

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="searchViewStyle">@style/SearchViewMy</item>
</style>

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#c5c5c5</item>
    <item name="colorControlActivated">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorPrimary</item>
</style>

在Manifest中我设置了

android:theme="@style/MyMaterialTheme"

1 个答案:

答案 0 :(得分:9)

我能够使用Android Studio的一个活动模板在一个干净的项目中重现该问题。对我来说问题是gradle插件的预览版本。您使用的是Android Studio 2.2 Preview 1吗?如果是,则在build.gradle

中找到此行
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'

并将其更改为:

    classpath 'com.android.tools.build:gradle:2.1.0'

对我来说,这解决了这个问题。

此处报告:https://code.google.com/p/android/issues/detail?id=210312

编辑:修复程序将在下周的预览版4中发布。您需要将该行更改为classpath'com.android.tools.build:gradle:2.2.0-alpha4'。

感谢mixel提供正确问题的链接以及我粘贴为“编辑:”的信息