[Android子级操作栏在尝试添加UP按钮时仍与父级相同

问题描述 投票:0回答:1

我是Android开发的新手,并创建了我的第一个应用程序,该应用程序包含将产品的可滚动列表显示为ImageViews,并可以通过长按鼠标来访问每个产品的详细信息。该应用程序包含三种活动:在应用程序启动时的启动活动,显示产品列表和每个产品的项目活动的主要活动。

启动活动没有操作栏,它只有一个背景图像,该图像在启动应用程序2秒钟后显示。主要活动包含一个标有“产品”的ActionBar,而对于每个产品或我称之为“ Item”的产品,其ActionBar应该被标为“ Item x”。最初,它的工作方式是这样的,但是没有返回按钮,这意味着每次在主“活动”中长时间单击后访问项目时,我都无法返回并关闭应用程序。

为了解决这个问题,我尝试按照https://developer.android.com/training/appbar/up-action上的android教程在每个项目活动的操作栏中为每个项目添加一个UP按钮:

在AndroidManifest.xml上用于项目:

<activity android:name=".Item7Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>

关于项目活动:

    getSupportActionBar().setTitle("Item 7");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

现在我遇到了一个新问题,在ActionBar上根本没有出现UP按钮,并且标题与它们的父项(主要活动)相同。我不知道问题来自何处,除操作栏外,该应用程序按预期运行。

这是我的代码的一部分:

AndroidManifest.xml

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/tp3_app_logo"
    android:label="Products"
    android:roundIcon="@mipmap/tp3_app_logo_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".Item7Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item6Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item5Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item4Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item3Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item2Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity android:name=".Item1Activity" android:parentActivityName="com.example.androtp3.MainActivity"/>
    <activity
        android:name=".SplashActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/title_activity_splash"
        android:theme="@style/FullscreenTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity" />
</application>

</manifest>

styles.xml:

<resources>

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

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="FullscreenTheme" parent="AppTheme">
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/black_overlay</item>
</style>

Item1活动(其他代码相同):

public class Item1Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_item1);
    getSupportActionBar().setTitle("Item 1");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

}

项目布局:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Item1Activity"
android:orientation="vertical">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:contentDescription="@string/item1_desc"
    android:paddingTop="10dp"
    android:src="@drawable/item1"></ImageView>

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/prix"
    android:textColor="#E91E63"
    android:textSize="18sp"
    android:textStyle="bold"
    android:paddingTop="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="0dp"
    android:paddingStart="10dp"
    android:paddingEnd="0dp">

</TextView>

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:visibility="visible"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp">

    <RadioButton
        android:id="@+id/radioButton"
        style="@style/Widget.AppCompat.CompoundButton.RadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/avecgar"
        android:visibility="visible" />

    <RadioButton
        android:id="@+id/radioButton2"
        style="@style/Widget.AppCompat.CompoundButton.RadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/sansgar"
        android:visibility="visible" />

</RadioGroup>

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/description"
    android:textColor="#E91E63"
    android:textSize="18sp"
    android:textStyle="bold"
    android:paddingTop="20dp"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp"></TextView>

<TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/item1_desc"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp"/>

<TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/livraison"
    android:textColor="#E91E63"
    android:textSize="18sp"
    android:textStyle="bold"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp"/>

<TextView
    android:id="@+id/textView4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/livraison_type1"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp"/>

<TextView
    android:id="@+id/textView5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/garantie"
    android:textColor="#E91E63"
    android:textSize="18dp"
    android:textStyle="bold"
    android:paddingLeft="8dp"
    android:paddingRight="0dp"
    android:paddingStart="8dp"
    android:paddingEnd="0dp"/>

<TextView
    android:id="@+id/textView6"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingStart="8dp"
    android:paddingLeft="8dp"
    android:paddingEnd="0dp"
    android:paddingRight="0dp"
    android:text="@string/garantie1" />

<TextView
    android:id="@+id/textView7"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingStart="8dp"
    android:paddingLeft="8dp"
    android:paddingEnd="0dp"
    android:paddingRight="0dp"
    android:text="@string/lien"
    android:textColor="#E91E63"
    android:textSize="18sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/textView8"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingStart="8dp"
    android:paddingLeft="8dp"
    android:paddingEnd="0dp"
    android:paddingRight="0dp"
    android:selectAllOnFocus="false"
    android:text="@string/lien1"
    android:textColor="#E91E63"
    />


</LinearLayout>
</ScrollView>

我认为问题可能出在xml文件之一中。

java android android-actionbar
1个回答
0
投票

用于后退按钮:

    getSupportActionBar().setTitle("Item7");     
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

并且还需要重写一些功能:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return super.onCreateOptionsMenu(menu);
}


@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        onBackPressed();
    }
    return super.onOptionsItemSelected(item);
}
© www.soinside.com 2019 - 2024. All rights reserved.