Android DrawLayout結合ListView用法實例
想做一個APP,設計中有側邊欄這個功能,所以現(xiàn)在開始學習下側邊欄的實現(xiàn)。
在官方的UI空間中已經(jīng)給出了DrawerLayout這個側滑的菜單空間。
因為在使用DrawerLayout的時候遇到了些問題,花了一天是時間才搞定,這里來記錄一下,免得到時候自己在掉坑里。
1.主布局一定要是DrawerLayout。
2.側欄拉出來時,要點擊空白欄關閉側欄的話,一定要把空白欄設置為FrameLayout
先上個效果圖吧:
好了,上代碼:
activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' xmlns:app='http://schemas.android.com/apk/res-auto' android: android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <!-- 內(nèi)容欄--> <FrameLayout android: android:layout_width='match_parent' android:layout_height='match_parent' /> <!-- 側滑欄--> <ListView android: android:layout_width='300dp' android:layout_height='match_parent' android:layout_gravity='start' android:background='#fff000' android:choiceMode='singleChoice' android:divider='#FFFFFF' android:dividerHeight='1dp' /></android.support.v4.widget.DrawerLayout>
listView里面的布局 item_list.xml
<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' xmlns:app='http://schemas.android.com/apk/res-auto'> <!-- 定義一個用于顯示頭像的ImageView --> <ImageView android: android:layout_width='64dp' android:layout_height='64dp' android:baselineAlignBottom='true' android:paddingLeft='8dp' /> <!-- 定義一個豎直方向的LinearLayout,把QQ呢稱與說說的文本框設置出來 --> <LinearLayout android: android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='vertical'> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:paddingLeft='8px' android:textColor='#1D1D1C' android:textSize='20sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:paddingLeft='8px' android:textColor='#B4B4B9' android:textSize='14sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:paddingLeft='8px' android:textColor='#B4B4B9' android:textSize='14sp' /> </LinearLayout></LinearLayout>
主程序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<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>(); for (int i = 0; i < names.length; i++) { Map<String, Object> showitem = new HashMap<String, Object>(); showitem.put('touxiang', imgIds[i]); showitem.put('name', names[i]); showitem.put('says', says[i]); showitem.put('time', times[i]); listitem.add(showitem); } //創(chuàng)建一個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, '提示的內(nèi)容', Toast.LENGTH_LONG).show(); //關閉 側邊欄 drawer_layout.closeDrawer(listView); }}
到了現(xiàn)在,代碼完了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. vue使用moment如何將時間戳轉(zhuǎn)為標準日期時間格式2. bootstrap select2 動態(tài)從后臺Ajax動態(tài)獲取數(shù)據(jù)的代碼3. js select支持手動輸入功能實現(xiàn)代碼4. php redis setnx分布式鎖簡單原理解析5. 《Java程序員修煉之道》作者Ben Evans:保守的設計思想是Java的最大優(yōu)勢6. CSS3中Transition屬性詳解以及示例分享7. Python數(shù)據(jù)相關系數(shù)矩陣和熱力圖輕松實現(xiàn)教程8. 如何在PHP中讀寫文件9. java加載屬性配置properties文件的方法10. 什么是Python變量作用域
