Android自定义操作栏删除图标

时间:2013-07-25 11:09:37

标签: android android-actionbar

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

enter image description here

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

问题是,当我隐藏应用程序图标时,它只隐藏它,而不是删除它,因此左边的间隙。我发现了其他一些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主题。

2 个答案:

答案 0 :(得分:0)

因此,如果我了解您要尝试实现的目标,那么为什么您不在左侧添加MenuItem自定义图片,并为actionBarLogo添加您想要的图像在右边。在那之后只需覆盖主页按钮点击,我想您将实现与自定义视图相同的功能,而ActionBar左侧没有填充。

P.S。如果我理解你错了,请提供一些有关它应该是什么样的信息。

答案 1 :(得分: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);