3

Navigation Drawer (Drawerlayout + NavigationView) に関するマテリアル デザインのガイドラインを読むと、デスクトップで常に開くように設定することをお勧めします。それが私がタブレットで達成したいことです。

パーマネント ナビゲーション ドロワーは常に表示され、コンテンツまたは背景と同じ高さで左端に固定されます。閉じることはできません。

ここに画像の説明を入力

しかし、サポート ライブラリで提供されているウィジェットを操作してそのような効果を実現するのは簡単ではないようです。

何か見逃していましたか、タブレット/デスクトップ/テレビで開く簡単な方法はありますか?

私の現在の電話レイアウト:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <android.support.v7.widget.Toolbar
        android:id="@+id/my_awesome_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primarycolor"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>


<!-- The navigation drawer   style="@style/NavDrawer"

                 android:background="@android:color/white"-->
<android.support.design.widget.NavigationView
    android:id="@+id/navigation"
    app:headerLayout="@layout/nav_header"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:menu="@menu/nav" />

4

3 に答える 3

1

DevrimTuncer の回答に加えて、次の投稿を見つけました: http://derekrwoods.com/2013/09/creating-a-static-navigation-drawer-in-android/

に加えて:

 drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN, drawerList);

以下も設定する必要があります。

drawerLayout.setScrimColor(Color.TRANSPARENT);

そしていくつかの余白を追加します:

値/dimens.xml

<resources>
    <dimen name="drawer_size">240dp</dimen>
    <dimen name="drawer_content_padding">0dp</dimen>
</resources>

値-sw720dp-土地/dimens.xml

<resources>
    <dimen name="drawer_content_padding">240dp</dimen>
</resources>
于 2016-02-02T15:15:15.710 に答える
0

ブール値のリソース値を作成し、それを使用して引き出しロック モードを設定します。例えば:

res
  -- values
    -- drawer_layout_values.xml
         <bool name="drawer_layout_locked">false</bool>
  -- values-sw720dp
    -- drawer_layout_values.xml
         <bool name="drawer_layout_locked">true</bool>

コード:

if(getResources().getBoolean(R.bool.drawer_layout_locked)) {
    drawerLayoutInstance.setDrawerLockMode (DrawerLayout.LOCK_MODE_LOCKED_OPEN)
}
于 2016-02-02T14:58:32.927 に答える