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

时间:2017-06-27 05:42:46

标签: android android-actionbar

我正在制作聊天应用程序,所以想在我的actionbar()聊天活动中添加图标和后退按钮(就像在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);

}

问题是两个东西都没有同时设置上面的代码只有后退按钮出现,如果我删除后退按钮的代码然后图标显示...如何设置两件事???

2 个答案:

答案 0 :(得分:0)

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

<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

快乐编码.. :)

答案 1 :(得分:0)

如果你想要完全像WhatsApp那么你需要使用Bitmap和Canvas制作一个自定义drawable,同时使用后退按钮和Profile图像在同一个可绘制图像中。然后将此可绘制图像设置为HomeAsUpIndicator

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