Android DrawerLayout drawer

Source: Internet
Author: User

Android DrawerLayout drawer
Android DrawerLayout drawer

DrawerLayout in supportV4 Lib, similar to the open-source slidemenu, the parent class of DrawerLayout is ViewGroup, And the custom components are basically extended.
Android. support. v4.widget. DrawerLayout

The following is a simple usage demonstration. Click the button in the upper left corner to open the drawer menu.

Click the corresponding ITEM to switch the corresponding content. Fragment is used in the content display. Here the ActionBar is not used for switching. <喎?http: www.bkjia.com kf ware vc " target="_blank" class="keylink"> VcD4NCjxwcmUgY2xhc3M9 "brush: java;"> <Framelayout android: id = "@ + id/fragment_container" android: layout_height = "match_parent" android: layout_width = "match_parent"> </framelayout>

Import android. content. res. configuration; import android. OS. bundle; import android. support. v4.app. fragment; import android. support. v4.app. fragmentActivity; import android. support. v4.widget. drawerLayout; import android. view. layoutInflater; import android. view. menu; import android. view. view; import android. view. view. onClickListener; import android. view. viewGroup; import android. widget. adapterView; import android. widget. baseAdapter; import android. widget. listView; import android. widget. textView; public class DrawerLayoutActivity extends FragmentActivity {private DrawerLayout mDrawerLayout; private ListView drawerContent; // drawer content @ Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. drawer_layout); mDrawerLayout = (DrawerLayout) findViewById (R. id. drawer_layout); drawerContent = (ListView) findViewById (R. id. drawer_content); mDrawerLayout. setDrawerListener (new DemoDrawerListener (); addHeader (drawerContent); // ListView Header drawerContent. setAdapter (new MyAdapter (); drawerContent. setOnItemClickListener (new DrawerItemClickListener (); findViewById (R. id. slide ). setOnClickListener (new OnClickListener () {public void onClick (View arg0) {mDrawerLayout. openDrawer (drawerContent); // open the drawer content}); // display the default HOME getsuppfrfragmentmanager (). beginTransaction (). replace (R. id. fragment_container, new HomeFragment ()). commit ();} private void addHeader (ListView mDrawer2) {View view = LayoutInflater. from (this ). inflate (R. layout. list_header, null); mDrawer2.addHeaderView (view);} static String titles [] = {"Homepage", "company", "nearby", "setting "}; class MyAdapter extends BaseAdapter {@ Override public int getCount () {return titles. length ;}@ Override public Object getItem (int p) {return titles [p] ;}@ Override public long getItemId (int arg0) {return 0 ;} @ Override public View getView (int p, View contentView, ViewGroup arg2) {String title = titles [p]; View v = LayoutInflater. from (getApplicationContext ()). inflate (R. layout. item_list, null); TextView textView = (TextView) v. findViewById (R. id. text); textView. setText (title); return v ;}@override public void onConfigurationChanged (Configuration newConfig) {super. onConfigurationChanged (newConfig);} private class DrawerItemClickListener implements ListView. onItemClickListener {@ Override public void onItemClick (AdapterView
  Parent, View view, int position, long id) {showFragmentById (position); mDrawerLayout. closeDrawer (drawerContent) ;}}// switch to the corresponding Fragment public void showFragmentById (int position) {Fragment f = null; switch (position) {case 1: f = new HomeFragment (); break; case 2: f = new CompanyFragment (); break; case 3: f = new NearFragment (); break; case 4: f = new SettingFragment (); break; default: break;} if (f = null) {return;} getsuppfragmentmanager (). beginTransaction (). replace (R. id. fragment_container, f ). commit ();} // callback function. Some things can be done when the private class DemoDrawerListener implements DrawerLayout is enabled or disabled. drawerListener {@ Override public void onDrawerOpened (View drawerView) {// call upon opening} @ Override public void onDrawerClosed (View drawerView) {// call when closing} @ Override public void onDrawerSlide (View drawerView, float slideOffset) {// during sliding} @ Override public void onDrawerStateChanged (int newState) {}}@ Override public boolean onCreateOptionsMenu (Menu menu) {return super. onCreateOptionsMenu (menu );}}

Here, only the HomeFragment code is written. The other content is the same.

public class HomeFragment extends Fragment {    public HomeFragment() {    }    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        return inflater.inflate(R.layout.home_fg, container,false);    }    @Override    public void onViewCreated(View view, Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        TextView textView = (TextView) view.findViewById(R.id.text);        textView.setText("Home");    }}

Home_fg.xml


  
       
   
  

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.