在Android中使用ActionbarSherlock和jeremyfeinstein slidingmenu自定义ActionBar

我有一个行动sherlock栏,我需要定制这个控制如下图。 我需要一个伪代码或类似的简单例子。 我下载了图书馆的例子,我一直在search这个网站和谷歌,但我找不到像这样的东西。 对不起,如果信息不完整,在这种情况下,我将编辑与您需要的信息的职位。 谢谢。

注意:

  1. 我不想使用android.support.v4.widget.DrawerLayoutActionBarDrawerToggle 。 我需要sherlock幻灯片效果。
  2. 我需要在菜单选项列表(LISTVIEW)之上的图像和标签(见右图)。

在这里输入图像说明

将来我会需要一个像下面这样的栏(风格必须相似才能看到这个链接 )

在这里输入图像说明

SidingMenu布局:

你应该设置一个ListView作为菜单布局。 接下来,用ImageViewTextView在里面创buildsliding_menu_header.xml布局:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" > <ImageView android:src="@drawable/image_source" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:text="text" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

现在,你可以膨胀这个布局,并将其设置为ListView的标题视图:

 View menuHeader = getLayoutInflater().inflate(R.layout.sliding_menu_header, null); mListView.addHeaderView(menuHeader); mListView.setAdapter(mYourMenuAdapter); 

ActionBar布局:

您可以将自定义视图添加到ActionBar 。 在你的情况下,布局可以是这样的:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/button1" android:text="button1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/button2" android:text="button2" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

然后添加下面的行到你的onCreate方法:

 ActionBar actionBar = getSupportActionBar(); actionBar.setCustomView(R.layout.actionbar_view); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); Button button1 = actionBar.getCustomView.findViewById(R.id.button1); Button button2 = actionBar.getCustomView.findViewById(R.id.button2); 

希望这对你有帮助。 如果我的答案不完整,请发表评论,我会更新它。

实现“滑动菜单”,它与Sherlock ActionBar是完美的

链接库

https://github.com/jfeinstein10/SlidingMenu

VideoTutorial用于实现两个库

https://www.youtube.com/watch?v=IW6idyV0CZQ

编辑

 //pre-ICS if (actionBarSherlock instanceof ActionBarImpl) { enableEmbeddedTabs(actionBarSherlock); //ICS and forward } else if (actionBarSherlock instanceof ActionBarWrapper) { try { Field actionBarField = actionBarSherlock.getClass().getDeclaredField("mActionBar"); actionBarField.setAccessible(true); enableEmbeddedTabs(actionBarField.get(actionBarSherlock)); } catch (Exception e) { Log.e(TAG, "Error enabling embedded tabs", e); } } //helper method private void enableEmbeddedTabs(Object actionBar) { try { Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class); setHasEmbeddedTabsMethod.setAccessible(true); setHasEmbeddedTabsMethod.invoke(actionBar, true); } catch (Exception e) { Log.e(TAG, "Error marking actionbar embedded", e); } } 

看那个链接:

https://groups.google.com/forum/#!topic/actionbarsherlock/hmmB1JqDeCk

当你在你的动作栏上有选项卡时,你可以为你的选项卡,边框,背景图像,重力,以及button外观。

看:

http://www.silverbaytech.com/2013/05/13/themes-for-the-android-actionbar-tabs/

尝试一下并告诉我们。

从你的照片,它接缝你也想滚动操作栏。 这是不可能的(据我所知)。 对于像这样的工作,你必须使你的自定义操作栏(作为一个普通的布局),并处理可见性变化,并自己滚动。 您也可以检查actionbar_compat(appcompat_v7)。 如果基本上提供与ActionbarSherlock和SlidingMenu相同的function。 http://android-developers.blogspot.ro/2013/08/actionbarcompat-and-io-2013-app-source.html 。 如果这是你的顾虑,菜单可以包含异质的项目。