【问题标题】:Add image on ActionBar and hide icon在 ActionBar 上添加图像并隐藏图标
【发布时间】:2014-06-25 22:19:29
【问题描述】:

我需要在 ActionBar 上做两件事:

  • 首先是在其右侧添加一张图片。
  • 二、隐藏ActionBar标题的icon/logo

结果会是这样的:

为了实现第一个,我正在关注答案here,但它没有将图像放在右侧,它靠近标题。这是从该帖子中提取的代码:

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions()
        | ActionBar.DISPLAY_SHOW_CUSTOM);
ImageView imageView = new ImageView(actionBar.getThemedContext());
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setImageResource(R.drawable.ic_launcher);
ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(
        ActionBar.LayoutParams.WRAP_CONTENT,
        ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT
                | Gravity.CENTER_VERTICAL);
layoutParams.rightMargin = 40;
imageView.setLayoutParams(layoutParams);
actionBar.setCustomView(imageView);

这是我的包含布局的图像视图:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/ablogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_launcher" />
</RelativeLayout>

然后,要获得第二件事,就是隐藏默认的标题图标,我只是使用这个:

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(false);

这样做,我可以隐藏图标,但选项卡位于操作栏上方,也就是说,操作栏位于选项卡下方。

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    对于第一个解决方法,我创建了一个布局以设置为自定义 actionBar。布局与上面的相同,但在 MainActivity 中定义它的方式发生了变化:

    /*Inflate your custom actionBar layout*/
    final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.actionbar_logo, null);
    
    /*Ads tabs*/
    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    /*Set up your ActionBar*/
    actionBar.setDisplayShowHomeEnabled(true);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(actionBarLayout);
    

    这样我就可以将图标设置在右侧。但是还是要解决标题的问题。

    对于第二种解决方法,我不会以这种方式隐藏/禁用图标,而是显示它,但随后将其设置为不可见。这样,选项卡就可以完美地位于 actionBar 下方。

    actionBar.setDisplayShowHomeEnabled(true);
    
    View homeIcon = findViewById(android.R.id.home);
        ((View) homeIcon.getParent()).setVisibility(View.GONE);
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      相关资源
      最近更新 更多