夏洛克操作栏:在 Android 2.3 版本中,findViewById(android.R.id.home) 返回 null。

5

我正在使用Sherlock Action Bar进行我的项目开发,但是遇到了问题。在OnCreate方法中,我正在使用以下代码。

        ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);
    View iconImage = findViewById(android.R.id.home);
    iconImage.setPadding(100, 0, 0, 0);

在Android 4.1中,“iconImage”不为空。但是在Android 2.3上,“iconImage”始终为空。您知道为什么吗?您知道如何在Android 2.3中获取主页按钮吗?注意:我已经检查过,我可以通过实现“onOptionsItemSelected”方法来检测主页按钮的点击动作。
请帮帮我!
1个回答

3

由于主视图存在于内容视图之上以及窗口装饰中,您无法访问主页视图。

请参考ActionBarSherlock的作者在此处了解更多信息。

附注:VNese :D


感谢Wayne。 是的,我是越南人 :) 你也是吗?我是Action Bar Sherlock(也是Android)的菜鸟。我跟着你的链接走了。我认为我应该自定义主页按钮。但是你知道怎样可以添加android:padding到主页按钮吗?我已经自定义了操作栏。但是我不知道如何将填充添加到主页图标。 - gZerone
我像这样自定义操作栏:<style name="Widget.MyCustom.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> <item name="background">@drawable/action_bar_bg</item> <item name="android:background">@drawable/action_bar_bg</item> <item name="icon">@drawable/back_button_bg</item> <item name="android:icon">@drawable/back_button_bg</item> </style> - gZerone
你是通过使用actionbar.setIcon(R.drawable.home_icon)来设置“主页按钮”的,对吗?如果是这样,为什么不给home_icon图像添加填充呢? 附言:是的,我也是越南人 :D - Wayne
非常感谢Wayne。遵循你的建议,我使用<layer-list/>为主页图标添加了内边距,效果很好。但是我遇到了另一个问题。当用户按下主页按钮时,高亮效果看起来不好。图标在被高亮显示时没有居中。你有什么办法可以解决这个问题吗? - gZerone

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