2017-06-27 13 views
0

我正在制作一个聊天应用程序,因此想要在我的actionbar()聊天活动中添加图标以及后退按钮(就像它在WhatsApp的),但我不能同时设置的东西...如何在操作栏上插入图标以及后退按钮(如在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); 

} 

的问题是,无论是东西没有得到设置在同一时间与上面的代码只返回按钮显示,如果我删除后退按钮的代码,然后图标显示了......如何设置这两个东西?

回答

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 

编码快乐.. :)

+0

由于它的工作:) –

+0

如何实现这个搜索栏??? –

+0

充气菜单中的搜索图标应该在那里。在你的工具栏中添加一个searchview组件将其可见性设置为隐藏android:layout_width =“match_parent” android:layout_height =“wrap_content” android:id =“@ + id /搜索查看” 应用:iconifiedByDefault =‘假’ 应用:searchIcon =‘@空’ >' ,然后看法 – Ashwani

0

如果你想完全像WhatsApp的,那么你需要做一个定制使用“位图”和“画布”将相同可绘制图像中的后退按钮和配置文件图像绘制为可绘制。然后设置这个可绘制的图像作为HomeAsUpIndicator

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

则可以图标列表中的相应用户改变.. .. –

+0

是的。基本上你可以创建一个静态函数,它将Bitmap中的上下文和配置文件图像加载并返回可绘制图像。所以当你打开你的ChatScreen时,你可以通过与已经启动了聊天的人的图像来调用这个功能。 – nitinkumarp

相关问题