ActionBar主页按钮在Nexus 5中放错了位置

时间:2014-04-26 13:00:42

标签: android actionbarsherlock

我使用ActionBar Sherlock和自定义主页按钮。在Nexus 5中,主页按钮位于操作栏的右侧。你可以从图像中看到它。有没有人遇到过这个问题?

谢谢。

enter image description here

其他设备(如Nexus 4,Samsung Galaxy S4等)

enter image description here

Nexus 5

要显示自定义主页按钮,我正在使用

actionBar.setDisplayShowCustomEnabled(true);

3 个答案:

答案 0 :(得分:0)

希望,您已添加以下行

actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);

ActionBar Sherlock贬值使用appcompart

更改它

答案 1 :(得分:0)

我使用RelativeLayout作为我的自定义视图,我认为这导致了我遇到的问题。我用LinearLayout切换它并设置了一些属性,我的问题解决了。

这些属性
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setHomeButtonEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);

但我仍然不明白为什么它适用于其他设备,如三星Galaxy S4,Nexus 4等,并且与Nexus 5和Nexus 7不兼容。

在我切换到LinearLayout之前,我尝试了各种方法来解决我的问题,包括以编程方式控制设备和设置边距。

对于仍然坚持使用RelativeLayout for ActionBarSherlock customView的人,您可以使用我不推荐的解决方法。

if (Build.MODEL.contains("Nexus 5")) {
      LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
      params.setMargins(-150, 0, 0, 0);
      actionBar.setCustomView(v, params);
}

答案 2 :(得分:0)

也许这会奏效。尝试

    View homeIcon = findViewById(android.R.id.home);
    ((View) homeIcon.getParent()).setVisibility(View.GONE);
    getSupportActionBar().setTitle("");