如何在ActionBar的图标和“向上”按钮之间添加填充/边距?

4
我需要在默认的Action Bar(android4.2.2)中,将上方按钮和图标之间的边距设置为10dp,将图标和标题之间的边距设置为5dp。有人可以建议一下如何实现吗?
我不想创建自定义的Action Bar,因为我所需的与默认的完全相同,只是高度,图标、上方按钮和标题之间的内边距发生了改变。另外,文本大小也有变化。
能否使用默认的Action Bar来实现?我已经成功更改了Action Bar的高度。
1个回答

4

通过从ActionBar中获取图标的ImageView,可以添加内边距/外边距

具体方法如下:

ImageView icon = (ImageView) findViewById(android.R.id.home);
FrameLayout.LayoutParams iconLp = (FrameLayout.LayoutParams) icon.getLayoutParams();
iconLp.topMargin = iconLp.bottomMargin = 0;
icon.setLayoutParams(iconLp);

编辑:将以下代码示例添加到您的 Activity 的onCreate方法中。


这不支持API10 :( - Kaloyan Roussev
实际上应该可以。你的“错误”信息是什么?哪些内容不被支持? - Philipp Jahoda
在android.R.id.home下面有一条黄线,当我将鼠标悬停在上面时,会出现“Field requires API level 11 (current min is 10): android.R.id#home”的提示。顺便说一句,我正在使用SherlockActionBar。 - Kaloyan Roussev
啊,是的,ActionBar 是在 API 10 中引入的,但 home-icon 只能在 API 11 或更高版本中引用。 - Philipp Jahoda
那么有没有任何改变那个边距的方法呢? - Kaloyan Roussev
@PhilippJahoda - 在 Lollipop 版本中,它会抛出以下错误 java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法 android.view.ViewGroup$LayoutParams android.widget.ImageView.getLayoutParams() - Durai Amuthan.H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接