Android中的操作栏返回按钮未显示

9

您好,我创建了一个继承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>

提前感谢你的帮助。


1
如果您希望在操作栏中显示白色图标/文本,请使用Theme.AppCompat.Light.DarkActionBar - ianhanniballake
@ianhanniballake 是的,谢谢 :) - N Sharma
3个回答

38

添加属性

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

显示“返回按钮”


8
如果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);
        }
    }
}

0

你的工具栏主题可能存在问题:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接