主页图标和向上按钮在动作栏中分开

时间:2015-03-23 11:11:54

标签: android

我正在为我的学校制作一个应用程序,我在其中完成了一个页面。然而,经过测试,我发现即使我放了以后:

android.support.v7.app.ActionBar aB = getSupportActionBar();
        assert aB != null;
        aB.setDisplayHomeAsUpEnabled(true);
        // Makes App Icon Back/Up Button

        aB.setDisplayShowHomeEnabled(true);
        aB.setLogo(R.drawable.-omitted-);
        aB.setDisplayUseLogoEnabled(true);
        // Shows App Icon in Action Bar

操作栏显示向上/向后按钮,与图标分开。向上/向后按钮位于最左侧,图标位于中间,活动名称位于最右侧。点击它会让我回到主屏幕,但我想一起显示向上/向后按钮和图标,就像在Whatsapp中的对话中的组图标一样。这是我的风格:

<style name="CredsStyle" parent="Theme.AppCompat.Light">
    <item name="android:windowActionBar">true</item>
    <!--Shows Action Bar-->

这是因为我设置了错误的父样式,windowActionBar属性,还是因为我正在使用Build Tools / AppCompat 22,或者我忘记了另一种方法或我不知道的事情,你能不能告诉我该做什么?谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您无法同时呼叫aB.setDisplayShowHomeEnabled(true);aB.setDisplayHomeAsUpEnabled(true);。 您要实现的目标可以通过以下方式实现:

getActionBar().setDisplayHomeAsUpEnabled(true);

这实际上不会删除应用程序图标。 并且为了在Home / Back Icon上添加click事件,你必须覆盖如下:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // Respond to the action bar's Up/Home button
        case android.R.id.home:
            /*NavUtils.navigateUpFromSameTask(this);
            Intent fgag = new Intent(getApplicationContext(), FragmentLauncher.class);
            startActivity(fgag);*/
            finish();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:0)

我建议您使用工具栏来显示操作栏,它更容易,您可以很容易地控制它,这是一个例子:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/toolbar">

toolbar = (Toolbar) findViewById(R.id.header);
    setSupportActionBar(toolbar);
    toolbar.setLogo(R.drawable.best_deal);
    toolbar.setLogoDescription(R.string.logo_description);