以下是我当前设置的屏幕截图。
我创建了一个自定义操作栏视图,我在下面的代码中设置,我想要的是两个图像,一个在标题栏中左对齐,另一个右对齐。
问题是,当我隐藏应用程序图标时,它只隐藏它,而不是删除它,因此左边的间隙。我发现了其他一些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主题。
答案 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);