如何以编程方式将gravity_layout设置为NavigationView - Android

时间:2017-09-06 11:14:16

标签: android android-navigationview

在我的应用中,用户可以选择在哪一方面拥有NavigationView

如何设置layout_gravity ="结束"以编程方式?

<android.support.design.widget.NavigationView
    android:id="@+id/main_navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#FFF"
    >


    <ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@color/light_grey"
    android:dividerHeight="0.5dp">

    </ListView>

</android.support.design.widget.NavigationView>

4 个答案:

答案 0 :(得分:0)

获取您的DrawerLayout变量并在Activity中初始化并使用以下行来设置其重力:

drawer.openDrawer(Gravity.LEFT);

抽屉是DrawerLayout的变量,您可以根据需要设置重力。

答案 1 :(得分:0)

您可以使用 openDrawer() 方法打开抽屉programaticaly

  

void openDrawer(int gravity)

     

通过将其设置为视图以外的方式打开指定的抽屉。

     

参数   gravity int: Gravity.LEFT 移动左抽屉或右移Gravity.RIGHT。也可以使用 GravityCompat.START GravityCompat.END

示例代码

drawer.OpenDrawer(Gravity.LEFT);
drawer.OpenDrawer(Gravity.RIGHT);

答案 2 :(得分:0)

你可以玩这个:

 DrawerLayout.LayoutParams params = new DrawerLayout.LayoutParams(DrawerLayout.LayoutParams.WRAP_CONTENT, DrawerLayout.LayoutParams.MATCH_PARENT);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            params.setLayoutDirection(Gravity.START);
        }
        navigationView.setLayoutParams(params);

答案 3 :(得分:0)

科特琳

要使其正常工作,整个xml必须为DrawerLayout(ID为drawer_layout,包含一个NavigationView

val params = drawer_layout.main_navigation_view.layoutParams as DrawerLayout.LayoutParams

然后从左侧打开

params.gravity = Gravity.START

或从右侧

params.gravity = Gravity.END