1

下面是我当前设置的屏幕截图。

在此处输入图像描述

我创建了一个自定义操作栏视图,我在下面的代码中进行了设置,我想要的是两张图片,一张在标题栏中左对齐,另一张右对齐。

问题是,当我隐藏应用程序图标时,它只是隐藏它,而不是删除它,因此左侧的间隙。我发现了其他几个 SO 问题,这些问题显示了如何删除图标,但这也删除了我想要保留的选项卡。

谁能给我一个解决方案?

从我的 onCreate() 函数:

final ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);    

        LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.action_bar_title, null);

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

        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setDisplayShowTitleEnabled(false);  
        actionBar.setDisplayShowHomeEnabled(true);
        actionBar.setCustomView(v);

我的 xml 自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"    
    android:layout_height="fill_parent"
    android:gravity="fill_horizontal"
    android:layout_marginLeft="0dp"
    android:orientation="horizontal"
    >    

    <ImageView android:id="@+id/title_img_left"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"                    
                    android:src="@drawable/test" />
     <ImageView android:id="@+id/title_img_right"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:src="@drawable/test" />


</RelativeLayout>

我相信我正在使用 Holo.Light.DarkActionBar 主题。

4

2 回答 2

0

代码正在运行!!!

ActionBar actionBar = getSherlockActivity().getSupportActionBar();

        View customNav = LayoutInflater.from(getActivity()).inflate(R.layout.custom_action_bar_view, null);
        ImageButton imageButton = (ImageButton) customNav.findViewById(R.id.imageButton);

        ActionBar.LayoutParams lp = new ActionBar
            .LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
        actionBar.setCustomView(customNav, lp);
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowHomeEnabled(false);
于 2013-12-17T09:13:13.360 回答
0

因此,如果我了解您要实现的目标,为什么您不添加MenuItem自定义图像在左侧,而将actionBarLogo您想要的图像设置在右侧。之后只需覆盖主页按钮单击,我想您将获得与自定义视图相同的效果,而无需在ActionBar.

PS 如果我理解错了,请提供更多关于它应该是什么样子的信息。

于 2013-07-25T13:47:58.343 回答