首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShareActionProvider ActionBarSherlock -删除额外空间

ShareActionProvider ActionBarSherlock -删除额外空间
EN

Stack Overflow用户
提问于 2013-04-28 22:40:26
回答 1查看 632关注 0票数 1

我正在尝试在我的安卓应用中使用ShareActionProvider。首先,我尝试使用默认的ShareActionProvider。但不幸的是,我发现android没有提供任何方法来改变分享图标的颜色。

所以我使用ActionBarSherlock。我可以更改背景,但不能删除菜单项和shareaction提供程序周围的空格。

其次是正确的历史图标。

请帮帮忙。

这是源代码。

代码语言:javascript
复制
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(R.style.MyApp);
    setContentView(R.layout.activity_fullscreen);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    LayoutInflater inflator = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View custom = inflator.inflate(R.layout.actionbar_view, null);
    actionBar.setCustomView(custom);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
    actionBar.setDisplayShowCustomEnabled(true);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getSupportMenuInflater().inflate(R.menu.menu, menu);

    MenuItem actionItem = menu.findItem(R.id.share_action_provider);
    ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
    actionProvider.setShareHistoryFileName(null);

    actionProvider.setShareIntent(createShareIntent());

    return true;
}

我的风格

代码语言:javascript
复制
<style name="MyApp" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock -->
</style>

我的菜单XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:id="@+id/contest"
    android:showAsAction="always"
    android:icon="@drawable/contest" />
 <item android:id="@+id/share_action_provider"
    android:showAsAction="always"
    android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" />
</menu>

我的自定义视图

代码语言:javascript
复制
<RelativeLayout 
android:id="@+id/actionLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
   <ImageView
   android:id="@+id/homeIcon"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/home_button_background"
   android:layout_alignParentLeft="true"
   android:onClick="onHomeClick">
   </ImageView>
</RelativeLayout> 

这是屏幕截图。

EN

回答 1

Stack Overflow用户

发布于 2013-12-13 15:06:26

您需要对默认样式进行更改,如下所述:

代码语言:javascript
复制
<style name="MyApp" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock -->

<!-- add following items -->
    <item name="actionButtonStyle">@style/CustomActionButtonStyle</item>
    <item name="android:actionButtonStyle">@style/CustomActionButtonStyle</item>
</style>

<style name="CustomActionButtonStyle" parent="Widget.Sherlock.ActionButton">
    <item name="android:minWidth">32dip</item>
    <item name="android:padding">0dip</item>
</style>

此问题背后的原因是ActionBar按钮的android:minWidth的默认值为56dip,因此您需要更改它。

我希望它能有所帮助!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16263989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档