应用程序顶部栏没有隐藏android

时间:2017-03-05 20:31:48

标签: android android-manifest android-theme

我有一个应用程序,在登录屏幕中,我有多种登录方式,如gmail,facebook和手动登录。他们都很好地工作,但当我试图隐藏显示应用程序名称的顶部栏时出现问题。我知道这与清单中的主题有关,但我还没有设置。请看看我的代码,看看我做错了什么......

的Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.spuck"
    android:versionCode="1"
    android:versionName="1.0">

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="23" />


<application
    android:allowBackup="true"
    android:icon="@drawable/the_spuck_4"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">


<activity android:name=".LoginActivity"/>

LoginActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:facebook="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.spuck.LoginActivity"
    style="@style/Red">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="94dp">


    <Button
        android:id="@+id/sign_in"
        android:layout_width="260dp"
        android:layout_height="35dp"
        android:textSize="13dp"
        android:text="Sign In"
        android:textColor="@color/white"
        android:textAllCaps="false"
        android:background="@drawable/signin_button_login_activity"
        android:gravity="center"
        android:layout_below="@+id/login_button"
        android:layout_alignLeft="@+id/sign_in_button"
        android:layout_alignStart="@+id/sign_in_button"
        android:layout_marginTop="33dp" />

    <ImageView
        android:id="@+id/app_name"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/the_spuck_3_2"
        android:background="@drawable/white_with_round"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp" />

    <com.google.android.gms.common.SignInButton
        android:id="@+id/sign_in_button"
        android:layout_width="260dp"
        android:layout_height="35dp"

        android:layout_marginTop="41dp"
        android:layout_below="@+id/app_name"
        android:layout_centerHorizontal="true" />

    <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="255dp"
        android:layout_height="60dp"
        android:textColor="#ffffff"
        android:layout_marginTop="10dp"
        android:shadowColor="#000"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="10"
        android:layout_below="@+id/sign_in_button"
        android:layout_centerHorizontal="true" />
    </RelativeLayout>
</RelativeLayout>

AppTheme.NoActionBar.xml

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">#ff5050</item>
    <item name="colorPrimaryDark">#ff5050</item>
</style>

2 个答案:

答案 0 :(得分:2)

将活动主题更改为NoActionBar

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">#ff5050</item>
    <item name="colorPrimaryDark">#ff5050</item>
</style>

答案 1 :(得分:1)

正如Nika所说,他的做法绝对正确。你需要看到的是有两种类型的主题。一个用于API 21及更高版本,另一个用于API 21及更低版本。您需要做的是将他说的主题分配给两个版本,因为您希望您的应用程序适用于两种API条件。请参阅下面的代码,如果有帮助,请告诉我......

适用于API 21及更高版本:

<resources>

    <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">#ff5050</item>
        <item name="colorPrimary">#ff5050</item>
        <item name="colorPrimaryDark">#ff5050</item>
    </style>
</resources>

适用于API 21及以下版本:

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">#ff5050</item>
    <item name="colorPrimaryDark">#ff5050</item>
</style>

现在要访问它,您需要将清单更改为:

<activity android:name=".LoginActivity"
        android:theme="@style/AppTheme.NoActionBar"/>

如果您不确定如何查看各自API的主题,请按住ctrl按钮并单击&#34; AppTheme.NoActionBar&#34;文本,它将显示两个可以找到它们的字段,并且只需编辑它们。