填充的动作条“向上”指示器图像(Padding the actionbar “up” indicat

2019-06-24 16:06发布

我在寻找一种方式来样式ActionBar的“向上”图标,当你将其配置为从您的活动显示的显示:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

我一直在找了一圈,发现了一种家的图标和标题(之间添加填充物ActionBar的家庭图标和标题之间填充 ),但没有办法主页图标和向上指示图标之间添加填充物。

我挖成ActionBarView.HomeView在Android源,它似乎通过这种调用膨胀起来指标:

mUpView = findViewById(com.android.internal.R.id.up);

问题是com.android.internal.R.id.up是内部的,所以我不能访问它,所以用于填充主页图标上面的链接的解决方案将无法工作。 理想情况下,我想重写ActionBarView.HomeView ,但它的内部是私有ActionBarView

有谁知道,如果ActionBarSherlock提供覆盖这种行为的好办法? 我看着提供了一个自定义主页的布局,但我发现线程表示,它不会从标准的Android类分歧是一个好主意。

有任何想法吗?

Answer 1:

正如API 15的这些元件的定位是硬编码到布局资源。 你将是唯一的选择使用自定义导航布局创建自己的和隐藏的内置导航回家。



Answer 2:

该解决方案将工作

ImageView view = (ImageView)findViewById(android.R.id.home);
view.setPadding(10, 0, 0, 0);

但,你将被迫把这个代码在父活动,或在每一个活动要填充添加到主按钮。

我建议这种方法:

  1. 创建一个可绘制层列表下面的代码:

     <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <bitmap android:antialias="true" android:gravity="center" android:src="@drawable/btn_back_actionbar_normal" /> </item> <item> <shape android:shape="rectangle" > <size android:width="24dp" /> <solid android:color="@android:color/transparent" /> </shape> </item> </layer-list> 
  2. 在您的样式添加:

对于值,11:

<item name="android:homeAsUpIndicator">@drawable/actionbar_back_selector</item>

对于值:

<item name="homeAsUpIndicator">@drawable/actionbar_back_selector</item>

这样,您将添加后退按钮之间的填充,并在compat的动作条的主页按钮,你就必须一次添加此代码,并且将在整个应用程序可用!



Answer 3:

其实这个答案是正确的。 刚刚成立的Home键的左填充,它会home键和向上箭头之间添加填充物

    ImageView view = (ImageView)findViewById(android.R.id.home);
    view.setPadding(10, 0, 0, 0);


Answer 4:

也许它的工作原理,如果你添加填充到图形(在Photoshop中,例如),并设置该图形与属性的主题

<item name="android:homeAsUpIndicator">@drawable/up_with_padding</item>


Answer 5:

我只想补充到@ blacksh33p回答如何获得标志的ImageView同时使用ActionBarSherlock支持旧手机。

ImageView view = (ImageView)findViewById(android.R.id.home);
if (view == null)
    view = (ImageView)findViewById(R.id.abs__home); // not sure that the name is exactly this - I tested it while developing an app on monodroid


Answer 6:

在我的手机,它的工作。 解决的办法是在下面:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <bitmap
        android:src="@drawable/frame_menu"
        android:antialias="true"
        android:gravity="center" 
        />
</item>
<item >
    <shape android:shape="rectangle">
        <size android:width="24dp"/>
        <solid android:color="@android:color/transparent"></solid>
        <padding
            android:right="10dp" 
            />
    </shape>

</item>

最重要的一句话就是“机器人:右= 10dp”



Answer 7:

只需添加绘制布局呼叫“actionbar_back_selector”,并把这个代码

而在Java文件(哪个布局需要回家了对应的Java文件按钮)将这个代码动作条动作条= getActionBar(); actionBar.setDisplayHomeAsUpEnabled(真); actionBar.setHomeButtonEnabled(真); actionBar.setHomeAsUpIndicator(R.drawable.actionbar_back_selector);



Answer 8:

你可以定义你的主题这样的“HomeAsUpIndicator”样式:

<item name="toolbarNavigationButtonStyle">@style/MyToolbarNavigationButtonStyle</item>

其中,该toobarNavigationButtonStyle用来定义该指标的所有样式,你可以改变它的宽度和paddingEnd它和标题文本之间的差距扩大。



文章来源: Padding the actionbar “up” indicator image