我在我的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>
答案 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("");