如何在操作栏上插入图标和后退按钮(就像在 whatsapp 中一样)

how to insert both icon as well as back button on action bar (like in whatsapp)

我正在制作一个聊天应用程序,因此想在我的 actionbar() 聊天 activity 中添加图标和后退按钮(就像在 WhatsApp 中一样),但我做不到设置这两件事...

代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chat);
    initControls();
    android.support.v7.app.ActionBar actionBar = getSupportActionBar();

    Intent intent = getIntent();
    String itemname = intent.getStringExtra("itemname");

    actionBar.setTitle(itemname);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    actionBar.setIcon(R.mipmap.ic_launcher);

}

问题是上面的代码没有同时设置这两个东西,只有后退按钮出现,如果我删除后退按钮的代码,那么图标就会出现...如何设置这两个东西? ??

您不应该使用默认的操作栏,制作您的自定义工具栏并在其中添加一个图像视图。 像这样:

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="@style/AppTheme.PopupOverlay"
>
     <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      >

            <ImageView
                android:id="@+id/imageToolBar"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_centerVertical="true"
                android:layout_marginTop="3dp"
                android:src="@drawable/profile"
            />

        <TextView
            android:id="@+id/toolbarText"
            style="@style/TextToolBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_centerVertical="true"
            android:layout_marginStart="10dp"
            android:layout_toEndOf="@id/imageToolBar"
            android:layout_toRightOf="@+id/imageToolBar"
            android:text="Your text"
            />
        </RelativeLayout>

        </android.support.v7.widget.Toolbar>

然后在您的 java 文件中执行此操作:

Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
TextView toolbarText = (TextView)toolbar.findViewById(R.id.toolbarText);
ImageView imageView = (ImageView)toolbar.findViewById(R.id.imageToolBar);
//Do your stuff here like set image on imageView

快乐编码..:)

如果您想要与 WhatsApp 完全一样,那么您需要使用位图和 Canvas 在同一可绘制图像中制作一个具有后退按钮和个人资料图像的自定义可绘制图像。然后将此可绘制图像设置为 HomeAsUpIndicator

getSupportActionBar().setHomeAsUpIndicator(R.drawable.custom_back);