如何更改样式中的SearchView / ActionBar颜色?

时间:2017-12-27 02:21:43

标签: android

通常,我希望我的ActionBar颜色不是colorPrimary(我的应用程序是深蓝色),而是匹配窗口背景,浅灰色,就像this

文字应该几乎是黑色的,阴影应该仍然在那里。我如何以面向对象的方式实现这一目标? (我不想手动/编程设置onCreate()中操作栏的每个字段)

另一件事是,我正在使SearchView占用整个操作栏,例如this

我希望这种情况下的背景是完全白色的,图标和文字都是深灰色/黑色,怎么做?

我想在上面的SearchView中添加X关闭图标,我该怎么做?

2 个答案:

答案 0 :(得分:0)

希望这适合你

header.xml

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:weightSum="2">

        <Button
            android:id="@+id/back"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_weight="0.1"
            android:background="@drawable/back_icon"
            android:gravity="center" />

        <EditText
            android:id="@+id/searchview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_centerInParent="true"
            android:layout_marginTop="3dp"
            android:layout_weight="1.9"
            android:gravity="bottom"
            android:hint="Enter customer Mobile Number"
            android:inputType="number"
            android:textColor="@color/black"
            android:textSize="17dp"></EditText>

        <Button
            android:id="@+id/search_btn"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:layout_margin="5dp"
            android:background="@color/white"
             android:text="Search" />
    </LinearLayout>


</RelativeLayout>



 <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="wrap_content"
        android:orientation="vertical">

        <include
            android:id="@+id/dash_toolbar"
            layout="@layout/header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/cardview"
            android:visibility="gone"
            android:layout_margin="3dp"
            android:elevation="5dp"
            app:cardCornerRadius="5dp"
            app:cardMaxElevation="5dp"
            app:cardPreventCornerOverlap="false"
            app:cardUseCompatPadding="false">


        </android.support.v7.widget.CardView>


    </LinearLayout>

答案 1 :(得分:0)

<resources>
<style name="ColorTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">YOUR_COLOR_CODE</item>
</style>
</resources>

AndroidManifest.xml中将您的应用/活动主题设置为ColorTheme,如此

android:theme="@style/CustomTheme

在您的应用程序/活动代码中,并以样式

添加代码