Android ActionBarSherlock顶栏

BCK*_*BCK 5 tabs android actionbarsherlock

在此输入图像描述

我希望像foursquare一样有一个Action Bar.我想要的是像朋友,探索和我这样的标签.此外,在标签上方我想要一个自定义布局,其中包括一些按钮,如foursquare标识,刷新和四字形签入.我创建了选项卡,但我无法更改ActionBarSherlock中选项卡上方的布局.我怎么解决这个问题?

Ric*_*win 7

要实现Foursquare外观,您无需考虑在选项卡上方创建布局.使用Actionbar Sherlock时,您只需要担心:

  1. 为顶部酒吧制作背景
  2. 为顶栏制作徽标
  3. 在一个menu.xml文件中添加项目,ActionbarSherlock将使用这些文件用Buttons填充顶部(只要使用Actionbar Sherlock样式的样式附加到thw活动).

因此,对于1.和2.它是关于使用styles.xml文件(应该驻留在res文件夹中的values文件夹中),如下所示:

<style name="Theme.Example" parent="Theme.Sherlock">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="absForceOverflow">true</item>       
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar.Solid">
    <item name="background">@drawable/actionbar_background</item> <-- the background for top bar
    <item name="icon">@drawable/actionbar_logo</item> <-- the logo that goes top left in the top bar
    <item name="backgroundSplit">@drawable/bg_striped_split</item> <-- the image used between the menu items
</style>
Run Code Online (Sandbox Code Playgroud)

对于3.您需要做的就是在menu.xml下创建菜单项(应该位于菜单文件夹中(如果没有,请在res文件夹中创建一个)):

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">     

<item android:id="@+id/menu_prefs"
      android:icon="@drawable/settings_icon"
      android:title="Preferences"
      android:showAsAction="ifRoom" /> 
</menu>
Run Code Online (Sandbox Code Playgroud)

要查看菜单项,您必须做的最后一件事是在活动中使用这些功能:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

public boolean onOptionsItemSelected (MenuItem item) {

    Intent intent;

    switch (item.getItemId())
    {   
    case R.id.menu_prefs:

        // Launch Preference Activity
        intent = new Intent(getBaseContext(), Preferences.class);           
        startActivity(intent);
        break;
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)