English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В android support.v4 есть контроллер для створкиDrawerLayout. Используя этот контроллер, можно создать меню, которое открывается или закрывается при горизонтальном скольжении по экрану, что может предложить пользователю приятный опыт.
DrawerLayout делится на две части: боковую меню и основное содержимое. Боковое меню можно развернуть или спрятать с помощью жеста, а часть основного содержимого может изменяться при нажатии на меню. На самом деле DrawerLayout это контрол, как и LinearLayout, и его можно использовать напрямую.
Свойства DrawerLayout
1、drawerPosition: определяет, с какой стороны экрана drawer будет скользить.
2、drawerWidth : определяет ширину drawer, то есть точную ширину, на которую drawer можно kéo từ края окна.
3、keyboardDismissMode : определяет, реагирует ли клавиатура на отклонение трения.
4、onDrawerClose : вызывается функция при закрытии навигационного вида.
5、onDrawerOpen : вызывается функция при открытии навигационного вида.
6、onDrawerSlide : вызывается функция при взаимодействии с навигационным видом.
7、onDrawerStateChanged : вызывается функция при изменении состояния Drawer, drawer имеет 3 состояния:
8、renderNavigationView : навигационная карта будет отрисована на одном из сторон экрана и может быть вытянута.
пример
использовать импортированные библиотеки
компилировать '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("网易"); list.add("腾讯"); list.add("新浪"); list.add("搜狐"); 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<?> parent, View view, int position, long id) { textView.setText(list.get(position)); showDrawerLayout(); } }); drawerLayout.openDrawer(Gravity.LEFT);//Открывать боковую панель, если не установить, по умолчанию не открывается } private void showDrawerLayout() { if (!drawerLayout.isDrawerOpen(Gravity.LEFT)) { drawerLayout.openDrawer(Gravity.LEFT); } drawerLayout.closeDrawer(Gravity.LEFT); } } }
Эффект выполнения показан на рисунке:
Адрес для скачивания:Drawerlayout_jb51.rar
Вот весь контент статьи, надеюсь, он поможет вам в изучении, также希望大家多多支持呐喊教程。
Заявление: содержимое статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не обладает правами собственности, не undergone редактирование, и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите содержимое,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении, и предоставьте соответствующие доказательства. При подтверждении, сайт немедленно удалил涉嫌侵权的内容.