English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
en android support.v4 Hay un controlador de vista de gaveta DrawerLayout. Al usar este controlador, se puede generar un menú que se abre o cierra deslizando horizontalmente en la pantalla, lo que ofrece una buena experiencia al usuario.
DrawerLayout se divide en dos partes: el menú lateral y la zona de contenido principal. El menú lateral puede expandirse y ocultarse según los gestos, y la zona de contenido principal puede cambiar según el clic en el menú. DrawerLayout es realmente un controlador, similar a LinearLayout, y se puede usar directamente.
DrawerLayout属性
1、drawerPosition:指定 drawer 将从屏幕的一侧滑动。
2、drawerWidth :指定 drawer 的宽度,即从窗口的边缘拉到视图更精确的宽度。
3、keyboardDismissMode :确定键盘是否响应拖动被驳回。
4、onDrawerClose :导航视图关闭时调用函数。
5、onDrawerOpen :导航视图打开时调用函数。
6、onDrawerSlide :与导航视图交互时调用函数。
7、onDrawerStateChanged :当 Drawer 状态发生变化时调用函数,drawer 有 3 种状态:
8、renderNavigationView :导航图将被渲染到屏幕的一侧,并且可以拉出。
案例
使用导入依赖库
compile 'com.android.support:appcompat-v7:24.2.1'
布局文件
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@"+id/v4_drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@"+id/v4_drawerlayout_frame" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@"+id/v4_text" android:textSize="22sp" android:textColor="@color/colorAccent" android:gravity="center" /> </FrameLayout> <ListView android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:id="@"+id/v4_listview" android:choiceMode="singleChoice" android:background="@android:color/white" /> </android.support.v4.widget.DrawerLayout>
Activity
public class DrawerActivity extends AppCompatActivity { private ListView listView; private DrawerLayout drawerLayout; private TextView textView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.drawer_activity); initView(); } private void initView() { listView=(ListView) findViewById(R.id.v4_listview); drawerLayout=(DrawerLayout) findViewById(R.id.v4_drawerlayout); textView=(TextView) findViewById(R.id.v4_text); initDate(); } private void initDate(){ final List<String> list = new ArrayList<String>(); list.add("NetEase"); list.add("Tencent"); list.add("Sina"); list.add("Sohu"); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<63;> parent, View view, int position, long id) { textView.setText(list.get(position)); showDrawerLayout(); } }); drawerLayout.openDrawer(Gravity.LEFT);//Abrir deslizador lateral, no configurar significa que no se abrirá por defecto } private void showDrawerLayout() { if (!drawerLayout.isDrawerOpen(Gravity.LEFT)) { drawerLayout.openDrawer(Gravity.LEFT); } drawerLayout.closeDrawer(Gravity.LEFT); } } }
El efecto de ejecución se muestra en la figura a continuación:
Dirección de descarga:Drawerlayout_jb51.rar
Eso es todo el contenido de este artículo, espero que haya sido útil para su aprendizaje y que todos los que lean este tutorial nos den más apoyo.
Declaración: El contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido ha sido subido por usuarios de Internet de manera autónoma, este sitio web no posee derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de violación de derechos de autor, por favor envíe un correo electrónico a: notice#w3Aviso: El contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido ha sido subido por usuarios de Internet de manera autónoma, este sitio web no posee derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de violación de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante, y una vez que se verifique, este sitio eliminará inmediatamente el contenido sospechoso de violación de derechos de autor.