0
我已經嘗試使用帶有ActionBarSherlock的Jeremy library。如何通過單擊操作欄圖標來製作左側菜單?
在我的xml示例中,我創建了一個ImageButton
,我在ActionBar
的右上角放置了一個「設置」圖像。所以我想要的是當用戶向右滑動應用程序時會出現一個設置菜單,或者當用戶點擊「設置」圖像時,菜單將會出現。我可以通過向右滑動來顯示菜單,但是當我點擊「設置」圖像時,我無法做到這一點。我怎麼做?。
我有一個操作欄自定義XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal" >
<ImageView
android:id="@+id/BackImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/abc" />
<ImageButton
android:id="@+id/BtnSetting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/setting"
android:background="@android:color/transparent"/>
<ImageButton
android:id="@+id/BtnMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/menu"
android:background="@android:color/transparent"/>
</RelativeLayout>
我的MainActivity
public class MainActivity extends SlidingFragmentActivity {
private void showActionBar() {
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.ab_custom, null);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled (false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(v);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showActionBar();
setContentView(R.layout.activity_main);
setBehindContentView(R.layout.menu_leftcontainer);
SlidingMenu menu = getSlidingMenu();
menu.setMode(SlidingMenu.LEFT_RIGHT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setFadeDegree(0.35f);
menu.setBehindOffset(200);
menu.setShadowDrawable(R.drawable.shadow);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.fragment_menu_container, new LeftMenuFragment());
ft.commit();
menu.setSecondaryMenu(R.layout.menu_rightcontainer);
menu.setSecondaryShadowDrawable(R.drawable.shadow);
FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
ft1.add(R.id.fragment_menu_container1, new RightMenuFragment());
ft1.commit();
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case R.id.BtnMenu:
if(menu.isMenuShowing())
{ menu.showContent(); }
else
{
menu.showMenu();
}
return true;
case R.id.BtnSetting:
if(menu.isMenuShowing())
{ menu.showContent(); }
else
{
menu.showMenu();
}
return true;
}
return super.onOptionsItemSelected(item);
}
}
我LeftMenuFragment
public class LeftMenuFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.leftmenu, container, false);
}
}
所以,當我跑我的應用程序可以滑動向左和向右菜單彈出,但當我點擊ActionBar
上的圖標時,菜單沒有彈出任何人都可以教我如何通過點擊圖標彈出菜單,如何在菜單退出時再次點擊菜單來隱藏菜單?
是我沒有用lib創建滑動菜單中,滑動菜單時滑動到左側,但當我點擊「菜單」圖標上的動作欄它不會出現 –
你可以在菜單上點擊代碼如果(menu.isMenuShowing()){ \t \t \t \t menu.showContent(); \t \t \t}否則{ \t \t \t \t menu.showMenu(); \t \t \t} –
對不起,我是一種新的編碼,所以如果可能的話,如果你能給我一個更詳細的解釋謝謝:( –