如何在主片段点击按钮打开抽屉式导航栏?
我与它采用了抽屉式导航栏中打开多个不同的片段中的一个活动的应用程序。我有动作条drawertoggle,但不是很明显。
如果我把在onCreateView一个按钮,在我的主要片段(当我的应用程序第一次启动时出现的片段),我怎样才能得到它来打开我的活动控制的抽屉式导航栏?
I have made an app with one activity which uses a navigation drawer to open a number of different fragments. I have the actionbar drawertoggle, but it is not very visible. If I place a button in the onCreateView in my main fragment(the fragment that appears when my app first starts up), how can I get it to open the navigation drawer controlled by my activity?
这似乎工作。答案是比我想象的要简单多了。
This seems to work. The answer is much simpler than I thought it would be.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragView = inflater.inflate(R.layout.mainmenu, container, false);
button1 = (Button) fragView.findViewById(R.id.button1);
mDrawerLayout = (DrawerLayout)getActivity().findViewById(R.id.drawer_layout);
mDrawerList = (ListView)getActivity().findViewById(R.id.left_drawer);
button1.setOnClickListener(this);
return fragView;
}
@Override
public void onClick(View v) {
mDrawerLayout.openDrawer(mDrawerList);
}
感谢您的答案。
如果您需要打开滑盖:
mDrawerLayout.openDrawer(Gravity.LEFT); //Edit Gravity.End need API 14
如果您需要在合上滑盖
mDrawerLayout.closeDrawer(Gravity.LEFT); //Edit Gravity.End need API 14
示例
我mDrawerLayout这里实例化:
my mDrawerLayout is instanced here:
mDrawerLayout = (DrawerLayout)findViewById(R.id.my_drawer_layout);
我的滑动状态:
mSlideState=false;
如果您需要了解滑菜单状态(关闭,打开)。使用此code:
if you need to know the slide menu state (closed, opened). Use this code:
mDrawerLayout.setDrawerListener(new ActionBarDrawerToggle(this,
mDrawerLayout,
R.drawable.ic_menu_slide,
0,
0){
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
mSlideState=false;//is Closed
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
mSlideState=true;//is Opened
}});
最后。您可以使用Click事件是这样的:
finally. You can use your click event like this:
public void clickEventSlide(){
if(mSlideState){
mDrawerLayout.closeDrawer(Gravity.END);
}else{
mDrawerLayout.openDrawer(Gravity.END);
}}
在我的情况我的幻灯片菜单是在正确的(Gravity.END),但如果您需要在左边,试图用Gravity.START
in my case my slide menu is at the right (Gravity.END), but if you need on the left, try with Gravity.START
这对我的工作,我希望解决你的问题。
This work for me, I hope solved your problem.