Android DrawLayout结合ListView用法实例

想做一个APP,设计中有侧边栏这个功能,所以现在开始学习下侧边栏的实现。

在官方的UI空间中已经给出了DrawerLayout这个侧滑的菜单空间。

因为在使用DrawerLayout的时候遇到了些问题,花了一天是时间才搞定,这里来记录一下,免得到时候自己在掉坑里。

1.主布局一定要是DrawerLayout。

2.侧栏拉出来时,要点击空白栏关闭侧栏的话,一定要把空白栏设置为FrameLayout

先上个效果图吧:

Android DrawLayout结合ListView用法实例_第1张图片

好了,上代码:

activity_main.xml



  
  
  
  

listView里面的布局 item_list.xml





  
  

  
  

    

    

    

  

主程序MainActivity.java

package action.sun.com.testdraw2;

import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{

  private String[] names = new String[]{"Tom", "Jack", "Json"};
  private String[] says = new String[]{"111111,2222222", "33333333~", "444444444~"};
  private String[] times = new String[]{"1天前", "3天前~", "2天前~"};
  private int[] imgIds = new int[]{R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher};
  private DrawerLayout drawer_layout;

  private ListView listView;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Log.d("1", "onCreate: xxxxxxxxxxxxxxx");
    drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout);

    List> listitem = new ArrayList>();
    for (int i = 0; i < names.length; i++) {
      Map showitem = new HashMap();
      showitem.put("touxiang", imgIds[i]);
      showitem.put("name", names[i]);
      showitem.put("says", says[i]);
      showitem.put("time", times[i]);
      listitem.add(showitem);
    }

    //创建一个simpleAdapter
    SimpleAdapter myAdapter = new SimpleAdapter(getApplicationContext(), listitem,
        R.layout.item_list, new String[]{"touxiang", "name", "says","time"},
        new int[]{R.id.imgtou, R.id.name, R.id.says, R.id.time});
    //ListView 容器
    listView = (ListView) findViewById(R.id.list_left_drawer);
    listView.setAdapter(myAdapter);
    listView.setOnItemClickListener(this);

  }

  //点击Item 显示在帧页面选择的Item值
  @Override
  public void onItemClick(AdapterView parent, View view, int position, long id) {
    Toast.makeText(MainActivity.this, "提示的内容", Toast.LENGTH_LONG).show();
    //关闭 侧边栏
    drawer_layout.closeDrawer(listView);
  }
}

到了现在,代码完了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Android DrawLayout结合ListView用法实例)