2013-03-19 1 views
3

내 응용 프로그램에서 슬라이딩 메뉴 (https://github.com/bk138/LibSlideMenu)에 다음 라이브러리를 사용하고 있습니다.슬라이드 메뉴 사용 : 뒤로 및 채우기가 작동하지 않습니다.

내 앱에서 슬라이딩 메뉴가 작동합니다. 오른쪽에서 왼쪽으로 슬라이드하면 메뉴가 나타납니다. 하지만 문제는 내가 메뉴에있을 때 나는 조각으로 돌아갈 수 없다는 것입니다. 돌아 오는 유일한 방법은 뒤로 버튼을 사용하는 것입니다. 또한 메뉴에있을 때 배경에있는 이전 조각을 볼 수있는 오른쪽에 패딩이 없습니다.

오늘은 일을 검색하고 있습니다. 나는 그 문제에 대한 모범을 찾았지만 잊고있는 본질적인 것을 발견 할 수 없었다.

내 주요 활동 :

public class MainActivity extends SlidingFragmentActivity { 

private Fragment rFrag; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setBehindContentView(R.layout.menu_frame); 

    if (savedInstanceState != null) 
     rFrag = getSupportFragmentManager().getFragment(savedInstanceState, "mContent"); 
    if (rFrag == null) 
     rFrag = new RecentGridFragment(); 

    FragmentTransaction fragment = getSupportFragmentManager().beginTransaction(); 

    fragment.replace(R.id.content_frame, rFrag); 

    MenuFragment mFrag = new MenuFragment(); 
    fragment.replace(R.id.menu_frame, mFrag); 
    fragment.commit(); 

    //Sliding menu 
    SlidingMenu sMenu = new SlidingMenu(this); 
    sMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    sMenu.setShadowWidthRes(R.dimen.shadow_width); 
    sMenu.setShadowDrawable(R.drawable.shadow); 
    sMenu.setBehindScrollScale(0.25f); 
    sMenu.setFadeDegree(0.25f); 
    sMenu.setSlidingEnabled(true); 
    sMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 


    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // TODO Auto-generated method stub 
    return super.onCreateOptionsMenu(menu); 
} 
@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    getSupportFragmentManager().putFragment(outState, "mContent", rFrag); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     toggle(); 
    } 
    return super.onOptionsItemSelected(item); 
} 
public void switchContent(final Fragment inputFrag) { 
    rFrag = inputFrag; 
    FragmentTransaction fragment = getSupportFragmentManager().beginTransaction(); 
    fragment.replace(R.id.content_frame, inputFrag); 
    fragment.commit(); 
    Handler h = new Handler(); 
    h.postDelayed(new Runnable() { 
     public void run() { 
      getSlidingMenu().showContent(); 
     } 
    }, 50); 
}} 

메뉴 :

public class MenuFragment extends ListFragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.list, null); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    String[] birds = getResources().getStringArray(R.array.birds); 
    ArrayAdapter<String> colorAdapter = new ArrayAdapter<String>(getActivity(), 
      android.R.layout.simple_list_item_1, android.R.id.text1, birds); 
    setListAdapter(colorAdapter); 
}} 

내 실수를 발견

public class RecentGridFragment extends Fragment { 

private int mImgRes; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    mImgRes = R.drawable.peacock; 

    GridView gv = (GridView) inflater.inflate(R.layout.list_grid, null); 
    gv.setBackgroundResource(android.R.color.black); 
    gv.setAdapter(new GridAdapter()); 
    return gv; 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
} 

private class GridAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     return 30; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = getActivity().getLayoutInflater().inflate(R.layout.grid_item, null); 
     } 
     ImageView img = (ImageView) convertView.findViewById(R.id.grid_item_img); 
     img.setImageResource(mImgRes); 
     return convertView; 
    } 

}} 

답변

0

내용 갖는다 mainfragment :

내가 필요를 slidingactivisation을 얻는다. 새로운 것을 만드는 대신에

SlidingMenu sMenu = this.getSlidingMenu();