如何设置动作栏主题以匹配该图像? [英] How can I theme my action bar to match this image?

查看:87
本文介绍了如何设置动作栏主题以匹配该图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用应用程序的UI,并且想要使操作栏看起来像这样:

I'm working on an app's UI and I want to get the action bar to look like this:

这就是现在的样子:

这是我的styles.xml

This is my styles.xml

<resources>

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

    <!-- Main activity theme -->
    <style name="ForecastTheme" parent="AppTheme">
        <item name="actionBarStyle">@style/ActionBar.Solid.Sunshine.NoTitle</item>
    </style>

    <!-- Detail activity theme -->
    <style name="DetailTheme" parent="AppTheme">
        <item name="actionBarStyle">@style/ActionBar.Solid.Sunshine.Title</item>
    </style>

    <!-- Settings activity theme -->
    <style name="SettingsTheme" parent="AppTheme">
    </style>

    <!-- Main activity action bar styles -->
    <style name="ActionBar.Solid.Sunshine.NoTitle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="displayOptions">useLogo|showHome</item>
        <item name="logo">@drawable/ic_logo</item>
    </style>

    <!-- Detail activity action bar styles -->
    <style name="ActionBar.Solid.Sunshine.Title" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="displayOptions">useLogo|showHome</item>
        <item name="logo">@drawable/art_clear</item>
    </style>

    <!-- style for item selected on phone -->
    <style name="ForecastListStyle">
        <item name="android:choiceMode">none</item>
    </style>

</resources>

这是我的详细信息活动的布局文件:

This is the layout file for my detail activity:

<!-- Master layout -->
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif-condensed"
            android:textSize="24sp"
            android:id="@+id/detail_day_textview" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif-condensed"
            android:textSize="16sp"
            android:textColor="@color/fragment_detail_grey"
            android:id="@+id/detail_date_textview" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="16dp"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sans-serif-light"
                    android:textSize="96sp"
                    android:paddingStart="32dp"
                    android:paddingLeft="32dp"
                    android:id="@+id/detail_high_textview" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sans-serif-light"
                    android:textSize="48sp"
                    android:textColor="@color/fragment_detail_grey"
                    android:paddingStart="64dp"
                    android:paddingLeft="64dp"
                    android:id="@+id/detail_low_textview" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/detail_icon" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:textSize="22sp"
                    android:textColor="@color/fragment_detail_grey"
                    android:id="@+id/detail_forecast_textview" />

            </LinearLayout>
        </LinearLayout>

        <!-- Humidity, wind, pressure -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif-light"
            android:textSize="22sp"
            android:layout_margin="2dp"
            android:id="@+id/detail_humidity_textview" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif-light"
            android:textSize="22sp"
            android:layout_margin="2dp"
            android:id="@+id/detail_pressure_textview" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif-light"
            android:textSize="22sp"
            android:layout_margin="2dp"
            android:id="@+id/detail_wind_textview" />

    </LinearLayout>

</ScrollView>

这是我的AndroidManifest.xml文件:

And this is my AndroidManifest.xml file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.sunshine.app" >

    <!-- This permission is necessary in order for Sunshine to perform network access. -->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:theme="@style/ForecastTheme"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".DetailActivity"
            android:theme="@style/DetailTheme"
            android:label="@string/title_activity_detail"
            android:parentActivityName=".MainActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.android.sunshine.app.MainActivity" />
        </activity>
        <activity
            android:name=".SettingsActivity"
            android:label="@string/title_activity_settings"
            android:theme="@style/SettingsTheme"
            android:parentActivityName=".MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.android.sunshine.app.MainActivity" />
        </activity>
        <provider
            android:authorities="com.example.android.sunshine.app"
            android:name=".data.WeatherProvider" >
        </provider>
    </application>

</manifest>

我在displayOptions中尝试了几种不同的方法,但是似乎无法同时显示徽标和详细信息"文本.另外,有什么方法可以使箭头匹配吗?还是这仅取决于API级别?

I've tried a couple different things in the displayOptions but can't seem to get the logo and "Details" text to display at the same time. Also, is there any way to get the arrow to match? Or does this just depend on the API level?

感谢您的帮助!

推荐答案

最好在工具栏/应用程序栏中使用菜单项.这样,操作栏中就不会有额外的空间或任何移位的项目.

It's better to use menu item in toolbar/app bar. in this way there will be no additional space or any dislocate item in action bar .

<menu 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"
    tools:context=".MainActivity">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="100"
        android:title="@string/action_share"
        app:showAsAction="always" />
    <item
        android:id="@+id/action_share"
        android:icon="@drawable/ic_action_share"
        android:orderInCategory="101"
        android:title="@string/action_search"
        app:showAsAction="always" />

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="102"
        android:title="@string/action_settings"
        app:showAsAction="never" /> </menu>

而且请记住,使用工具栏对于您的目的而言要容易得多

And just remember using toolbar is much more easier for your purpose

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/ColorPrimary"
        android:minHeight="?attr/actionBarSize">

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

这里是完整的教程

这篇关于如何设置动作栏主题以匹配该图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆