dgk*_*ipp 15 android actionbarsherlock
我正在寻找一种方法来设置ActionBar的"up"图标的样式,当您将其配置为从Activity中显示时,该图标会显示:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
我一直在环顾四周,找到一种方法在主页图标和标题之间添加填充(ActionBar的主页图标和标题之间的填充),但不是在主页图标和向上指示符图标之间添加填充的方法.
我ActionBarView.HomeView在android源码中挖了一下,它似乎通过这个调用来膨胀向上指示器:
mUpView = findViewById(com.android.internal.R.id.up);
Run Code Online (Sandbox Code Playgroud)
问题是com.android.internal.R.id.up内部因此我无法访问它,因此填充主页图标的上述链接解决方案将无法正常工作.理想情况下,我想覆盖它ActionBarView.HomeView,但它是私有的ActionBarView.
有谁知道ActionBarSherlock是否提供了一种覆盖此行为的好方法?我已经研究过提供一个自定义的家庭布局,但我发现的线程表明,与标准的android类不同,这不是一个好主意.
有任何想法吗?
Dav*_*d_E 22
这个解决方案可行
ImageView view = (ImageView)findViewById(android.R.id.home);
view.setPadding(10, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
但是,您将被迫将此代码放在父Activity中,或者在要将填充添加到主页按钮的每个活动中.
我建议这种方法:
使用以下代码创建可绘制的图层列表:
<?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>
Run Code Online (Sandbox Code Playgroud)在你的风格中添加:
对于值-11:
<item name="android:homeAsUpIndicator">@drawable/actionbar_back_selector</item>
Run Code Online (Sandbox Code Playgroud)
对于价值观:
<item name="homeAsUpIndicator">@drawable/actionbar_back_selector</item>
Run Code Online (Sandbox Code Playgroud)
这样你就可以在后面按钮和compat操作栏中的Home按钮之间添加一个填充,你只需要添加一次这个代码,并且可以在整个应用程序中使用!
实际上这个答案是对的.只需设置主页按钮的左侧填充,它将在主页按钮和向上箭头之间添加填充
ImageView view = (ImageView)findViewById(android.R.id.home);
view.setPadding(10, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19324 次 |
| 最近记录: |