Android DrawLayout結(jié)合ListView用法實例
想做一個APP,設(shè)計中有側(cè)邊欄這個功能,所以現(xiàn)在開始學(xué)習(xí)下側(cè)邊欄的實現(xiàn)。
在官方的UI空間中已經(jīng)給出了DrawerLayout這個側(cè)滑的菜單空間。
因為在使用DrawerLayout的時候遇到了些問題,花了一天是時間才搞定,這里來記錄一下,免得到時候自己在掉坑里。
1.主布局一定要是DrawerLayout。
2.側(cè)欄拉出來時,要點擊空白欄關(guān)閉側(cè)欄的話,一定要把空白欄設(shè)置為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' /> <!-- 側(cè)滑欄--> <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呢稱與說說的文本框設(shè)置出來 --> <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(); //關(guān)閉 側(cè)邊欄 drawer_layout.closeDrawer(listView); }}
到了現(xiàn)在,代碼完了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. IntelliJ IDEA設(shè)置條件斷點的方法步驟2. IntelliJ IDEA導(dǎo)入jar包的方法3. SSM框架JSP使用Layui實現(xiàn)layer彈出層效果4. 刪除docker里建立容器的操作方法5. IntelliJ IDEA導(dǎo)出項目的方法6. 基于android studio的layout的xml文件的創(chuàng)建方式7. Python產(chǎn)生batch數(shù)據(jù)的操作8. Java導(dǎo)出Execl疑難點處理的實現(xiàn)9. 淺談定義一個PHP函數(shù)10. IDEA創(chuàng)建SpringBoot的maven項目的方法步驟
