操作栏后退按钮未在Android中显示

时间:2014-10-29 18:08:52

标签: android android-actionbar

您好我已经创建了一个扩展ActionBarActivity&的活动。在我的应用程序中使用材质主题在操作栏中,不显示“后退”按钮。

我没有找到它没有显示的原因。有什么帮助吗?

public class RegistrationActivity extends ActionBarActivity {

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

        getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ab_background_light));
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

style.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!--Support Library compatibility-->
    <item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<!-- ActionBar styles -->
<style name="MyTheme.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!--Support Library compatibility-->
    <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/white</item>
</style>

的AndroidManifest.xml

    <activity
        android:name=".RegistrationActivity"
        android:label="@string/title_activity_registration" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".HomeScreenActivity" />
    </activity>

提前致谢。

3 个答案:

答案 0 :(得分:31)

添加属性

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

显示“后退按钮”

答案 1 :(得分:5)

如果Jorgesys的解决方案不适合你。尝试覆盖onOptionsItemSelected方法。

public class MyActivity extends AppCompatActivity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if (id == android.R.id.home)
        {
            onBackPressed();
            return true;
        }
        else
        {
            return super.onOptionsItemSelected(item);
        }
    }
}

答案 2 :(得分:0)

您的工具栏主题可能有问题:

app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Light"