Android 标题栏和sherlock操作栏重叠

Android 标题栏和sherlock操作栏重叠,android,layout,android-fragments,actionbarsherlock,fragment-tab-host,Android,Layout,Android Fragments,Actionbarsherlock,Fragment Tab Host,我开发了应用程序,当应用程序安装在Nexus 5上测试的5英寸以上的高屏幕分辨率设备上时,应用程序的标题栏与Sherlock Action bar连接在同一行 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sActionBar = getSupportActionBar(); setContentView(R.layout.simple_ta

我开发了应用程序,当应用程序安装在Nexus 5上测试的5英寸以上的高屏幕分辨率设备上时,应用程序的标题栏与Sherlock Action bar连接在同一行

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    sActionBar = getSupportActionBar();
    setContentView(R.layout.simple_tabs);
    sContext = this;

    View actionbar = LayoutInflater.from(sContext).inflate(
            R.layout.header_bar, null);
    sActionBar.setDisplayShowCustomEnabled(true);
    sActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    sActionBar.setCustomView(actionbar);


    View homeIcon = findViewById(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home
            : R.id.abs__home);

    ((View) homeIcon.getParent()).setVisibility(View.GONE);
    ((View) homeIcon).setVisibility(View.GONE);

    sActionBar.setBackgroundDrawable(getResources().getDrawable(
            R.drawable.actionbar_tabs_selector));

    if (savedInstanceState != null) {
        sActionBar.setSelectedNavigationItem(savedInstanceState
                .getInt("tab"));
    }

    displayUi();

    sActionBar.setSelectedNavigationItem(0);

}



/**
 * Handle UI
 */

public void displayUi() {

    // santosh
    View customView1 = LayoutInflater.from(sContext).inflate(
            R.layout.action_bar_tab_text, null);
    View customView2 = LayoutInflater.from(sContext).inflate(
            R.layout.action_bar_tab_text, null);
    TextView titleTV1 = (TextView) customView1
            .findViewById(R.id.action_custom_title);
    TextView titleTV2 = (TextView) customView2
            .findViewById(R.id.action_custom_title);

    sPager = (ViewPager) ((SherlockFragmentActivity) sContext)
            .findViewById(R.id.pager);

    mTabsAdapter = new TabsAdapter((SherlockFragmentActivity) sContext,
            sActionBar, sPager);

    mTabsAdapter.addTab(sActionBar.newTab().setText(CONTENT1[0]),
            CustomerStatisticsFragment.class, null);

    mTabsAdapter.addTab(sActionBar.newTab().setText(CONTENT1[1]),
            BusinessStatisticsFragment.class, null);


    ActionBar.LayoutParams layoutParams = new LayoutParams(Gravity.CENTER);
    customView1.setLayoutParams(layoutParams);
    customView2.setLayoutParams(layoutParams);

    titleTV1.setText(CONTENT1[0]);
    sActionBar.getTabAt(0).setCustomView(customView1);
    titleTV2.setText(CONTENT1[1]);
    sActionBar.getTabAt(1).setCustomView(customView2);

    final TextView headerText = (TextView) ((SherlockFragmentActivity)     sContext)
            .findViewById(R.id.txtHeader);
    headerText.setText(sContext.getString(R.string.statistics));

}
问题截图:


请向我推荐任何可能的解决方案。

我在Nexus 4 Android 4.4版本中也遇到了这个问题,并像这样修复了它

      view = inflater.inflate(R.layout.cus_actionbar_top, null);

    actionbar.setCustomView(view);
    actionbar.setDisplayShowCustomEnabled(true);
    actionbar.setDisplayShowHomeEnabled(false);
    actionbar.setHomeButtonEnabled(false);    


View homeIcon = findViewById(Build.VERSION.SDK_INT >= 
            Build.VERSION_CODES.HONEYCOMB ? android.R.id.home:   R.id.abs__home);
     ((View) homeIcon.getParent()).setVisibility(View.GONE);
     actionbar.setDisplayShowTitleEnabled(false);

您好,这在分辨率较低的设备上正常工作吗?Nexus5使用xxhdpi资源,因此您的问题可能来自此。另一件事是,为什么要在API级别之间进行区分?ActionBarSherlock通常允许您使用相同的代码。是的,它在较低分辨率下工作得非常好。