Android应用程序标签名称随处可见

时间:2017-07-19 13:37:22

标签: android android-manifest

我在我的Android应用中使用此主题,Theme.AppCompat.Light.NoActionBar在我的项目名称的每个活动中,即label标记中的Application名称出现在每个Android活动中,之后不是发生但最近它正在发生。如果我删除标签,则会显示包名称而不是标题。

到底发生了什么?

我知道有几种方法可以修复它但是告诉我我错在哪里以及发生了什么?这是一个错误吗?

我提到了之前的回答Android Application Name Appears as Activity Name但尝试了但仍然没有用,所以这里是我的manifest.xml的副本

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2"></activity>
    </application>

下面是一个示例屏幕截图,虽然该活动(Activity2)由一个工具栏组成,但是白色区域是工具栏中的一个edittext,工具栏内没有其他内容,所以可以看到标签名称。

编辑1

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:textColorSecondary">@color/white</item>
    </style>

编辑2

public class Activity2 extends AppCompatActivity {


    LinedEditText editText;
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);


        toolbar = (Toolbar) findViewById(R.id.toolbar);
        editText = (LinedEditText) findViewById(R.id.editText);
        setSupportActionBar(toolbar);


    }
}

activity2.xml

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
    android:orientation="vertical"
  >
    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/green"
        android:id="@+id/toolbar"
        >

        <EditText
            android:layout_width="250dp"
            android:layout_height="40dp"
           android:id="@+id/title"
            android:background="@color/white"
            android:layout_margin="10dp"
            />
        </android.support.v7.widget.Toolbar>
    <com.test.testproject.LinedEditText
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/editText"
        android:gravity="top"
        />
</LinearLayout>

enter image description here

4 个答案:

答案 0 :(得分:0)

更新:

这是你的问题。避免使用工具栏。

<android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/green"
        android:id="@+id/toolbar"
        >

        <EditText
            android:layout_width="250dp"
            android:layout_height="40dp"
           android:id="@+id/title"
            android:background="@color/white"
            android:layout_margin="10dp"
            />
        </android.support.v7.widget.Toolbar>

如果您在主题中使用NoActionBar。避免在Activity的布局中使用工具栏。这就是你获得活动名称的原因。

如果您使用工具栏,请确保禁用 TITLE

答案 1 :(得分:0)

检查一下。

getSupportActionBar().setDisplayShowTitleEnabled(false);

答案 2 :(得分:0)

/bin/cp -a "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/A/Headers"

答案 3 :(得分:0)

在setSupportActionBar(工具栏)之后插入onCreate()方法。

    setContentView(R.layout.activity_main);
    ActionBar actionBar = getActionBar();
    actionBar.setTitle("");