Я пытаюсь разработать пользовательский ящик для навигации без использования панели действий и панели инструментов, когда пользователь нажимает кнопку навигации. Если у вас есть какой-либо образец, пожалуйста, поделитесьКак открыть навигационный ящик при нажатии кнопки? без использования панели действий в android
ответ
Вы можете использовать drawerLayout.openDrawer (GravityCompat.START);
Реализация
В вас активность
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawerLayout.openDrawer(GravityCompat.START);
}
});
XML для просмотра навигации (должен быть внутри Drawerlayout)
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
android:fitsSystemWindows="true"
android:overScrollMode="always"
app:headerLayout="@layout/drawer_header"
app:itemBackground="@@android:color/white"
app:itemIconTint="@color/app_primary"
app:itemTextColor="@color/app_primary"
app:menu="@menu/drawer_menu">
Если вы используете DrawerLayout
из библиотеки поддержки вы получили opneDrawer()
методы там :
Смотрите документы: https://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html
вам нужно использовать 'DrawerToggle', как этот
//initialisation left drawer
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
mToolbar, R.string.app_name, R.string.app_name) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
//syncState();
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
//getSupportActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
//syncState();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
Используйте DrawerLayout
mDrawerLayout = (DrawerLayout) getView().findViewById(R.id.drawer_layout);
//To Open:
mDrawerLayout.openDrawer(Gravity.START);
//To Close:
mDrawerLayout.closeDrawer(Gravity.END);
это пример
Создать фрагмент NavigationDrawerFragment.class
public class NavigationDrawerFragment extends Fragment {
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private int mFragmentId;
private View mFragmentContainerView;
public interface EventDrawerListener {
void someEvent(String s);
}
private EventDrawerListener mEventDrawerListener;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.slide_menu, container, false);
return v;
}
public void setUp(int fragmentID, DrawerLayout drawerLayout, EventDrawerListener eventDrawerListener) {
this.mFragmentId = fragmentID;
this.mEventDrawerListener = eventDrawerListener;
mFragmentContainerView = getActivity().findViewById(mFragmentId);
mDrawerLayout = drawerLayout;
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, R.string.open, R.string.close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private ActionBar getActionBar() {
return ((AppCompatActivity) getActivity()).getSupportActionBar();
}
}
в activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Content Your Main"/>
</RelativeLayout>
<fragment
android:id="@+id/navigation_drawer"
android:name="your.package.NavigationDrawerFragment"
android:layout_width="@dimen/width_menu"
android:layout_height="match_parent"
android:layout_gravity="start"
android:splitMotionEvents="false"
tools:layout="@layout/slide_menu" />
</android.support.v4.widget.DrawerLayout>
в MainActivity.class
public class MainActivity extends Activity{
private NavigationDrawerFragment mNavigationDrawerFragment;
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpDrawer();
ImageView image=(ImageView) findViewById(R.id.image_home);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawer(Gravity.LEFT);
} else {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
}
});
}
private void setUpDrawer() {
mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mNavigationDrawerFragment.setUp(R.id.relative_category, (DrawerLayout) findViewById(R.id.drawer_layout), this);
mDrawerLayout.setScrimColor(getResources().getColor(android.R.color.transparent));
}
}
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="@color/color_bg_splash"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/image_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:gravity="center"
android:paddingBottom="@dimen/padding16dp"
android:paddingRight="@dimen/padding16dp"
android:paddingTop="@dimen/padding16dp"
android:src="@drawable/icon_menu" />
</android.support.v7.widget.Toolbar>
Надежда Это поможет вам !!!
Вы устанавливаете DrawerLayout ниже My Toolbar.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_below="@+id/toolbar"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Content Your Main"/>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
Я пытаюсь разработать навигационный ящик с панелью действий и панелью управления @Nguyen Trung Hieu –
Я обновляю свой ответ !!!! –
Вы устанавливаете DrawerLayout ниже My Toolbar. навигационный ящик с панелью действий и панелью инструментов –
- 1. Навигационный ящик без панели действий, android
- 2. Как сделать навигационный ящик без панели действий
- 3. открыть навигационный ящик при нажатии значка опции
- 4. Как открыть навигационный ящик без панели действий, открыть всего одним нажатием кнопки
- 5. Ящик навигации без панели действий
- 6. Как открыть ящик при нажатии кнопки
- 7. Android Studio - Прозрачная панель действий - Навигационный ящик
- 8. Навигационный ящик Ниже панели инструментов
- 9. Как открыть и закрыть навигационный ящик, нажмите на значок пользовательской панели действий в Android?
- 10. Как сделать навигационный ящик открывается при нажатии кнопки плавающего действия
- 11. android - открыть навигационный ящик, нажав значок приложения?
- 12. Навигационный ящик с панелью действий
- 13. Навигационный ящик не отображает значок в панели действий
- 14. Как создать ящик навигации без панели действий в студии android
- 15. Можно ли запустить навигационный ящик без использования ActionBarDrawerToggle?
- 16. Ошибка при нажатии кнопки поиска в панели действий (Android)
- 17. Переключить навигационный ящик с помощью заголовка панели действий
- 18. Не показывайте навигационный ящик при нажатии drawerToggle
- 19. Навигационный ящик + скользящие вкладки внутри фрагмента Android
- 20. Как использовать навигационный ящик для переключения действий [Android Studio]
- 21. onOptionsItemSelected не вызывается при нажатии кнопки на панели действий - Android
- 22. Как добавить постоянные кнопки в навигационный ящик?
- 23. Как установить навигационный ящик, который нужно открыть справа налево
- 24. Как изменить фон панели действий при нажатии кнопки «Поиск»?
- 25. Общий навигационный ящик для нескольких действий без использования фрагментов. Возможно ли это в android
- 26. Навигация Ящик не отображается при щелчке изображения (без панели действий)
- 27. Навигационный ящик Home Button Behavior
- 28. Панель действий, навигационный ящик со списком
- 29. Как открыть макет при нажатии кнопки (android)
- 30. ANDROID - Как открыть камеру при нажатии кнопки в Android?
Пожалуйста, сообщайте код, что вы уже сделали? –
Я не знаю о выдвижном ящике naviagtion .. @AlokGupta –
Пожалуйста, прочитайте онлайн. –