2016-06-10 84 views
1

如何停止我的Android應用程序中的導航抽屜自動打開?如何阻止Android抽屜自動打開?

它用於正常工作。起初看不見,能夠被看到的可見度。但我需要一個標題。起初它只是一個ListView。在修改抽屜xml(見下文)以在列表視圖上給它一個標題後不久,它就開始自動打開。我當然沒有添加任何東西到像my_nav_drawer.openOnStartup()這樣的代碼。

<!-- The navigation drawer --> 
<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 

android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<!-- The main content view --> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@drawable/ail_background_gradient" 
    tools:context="com.allinlearning.assist_android.HomeScreenActivityFragment"> 

    <ImageView 
     android:id="@+id/imgViewLogo" 
     android:src="@drawable/ail_logo" 
     android:layout_margin="10dp" 
     android:layout_width="90dp" 
     android:layout_height="90dp" 
     android:scaleType="fitXY" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="ALL In Learning" 
     android:id="@+id/textViewLogo" 
     android:layout_margin="10dp" 
     android:layout_below="@+id/imgViewLogo" 
     android:layout_centerHorizontal="true" 
     android:textSize="@dimen/font_size26" 
     android:textStyle="bold" /> 

    <ImageButton 
     android:id="@+id/imgBtnGradeAssessment" 
     android:src="@drawable/grade_assessment" 
     android:layout_width="100dp" 
     android:layout_height="95dp" 
     android:scaleType="fitXY" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@+id/textViewGradeAssessment" 
     android:layout_toStartOf="@+id/textViewGradeAssessment" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Grade" 
     android:id="@+id/textViewGradeAssessment" 
     android:textColor="@color/white" 
     android:textSize="@dimen/font_size28" 
     android:layout_centerVertical="true" 
     android:layout_alignRight="@+id/imgViewLogo" 
     android:layout_alignEnd="@+id/imgViewLogo" /> 

    <ImageButton 
     android:id="@+id/imgBtnPrivateData" 
     android:src="@drawable/two_clickers" 
     android:layout_width="100dp" 
     android:layout_height="95dp" 
     android:scaleType="fitXY" 
     android:layout_below="@+id/imgBtnGradeAssessment" 
     android:layout_alignLeft="@+id/imgBtnGradeAssessment" 
     android:layout_alignStart="@+id/imgBtnGradeAssessment" /> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Private Data" 
     android:id="@+id/textViewPrivateData" 
     android:textColor="@color/white" 
     android:textSize="@dimen/font_size28" 
     android:layout_alignBottom="@+id/imgBtnPrivateData" 
     android:layout_toRightOf="@+id/imgBtnPrivateData" 
     android:layout_toEndOf="@+id/imgBtnPrivateData" 
     android:layout_marginBottom="40dp" /> 

</RelativeLayout> 

<TextView 
    android:layout_width="240dp" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="I AM THE TITLE" 
    android:id="@+id/tvDrawerTitle" 
    android:layout_margin="10dp" 
    android:layout_centerHorizontal="true" 
    android:textSize="@dimen/font_size26" 
    android:textStyle="bold" 
    android:textAlignment="center" 
    android:textColor="@color/black" /> 

<ListView 
    android:id="@+id/lvDrawerItems" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:background="@color/white" /> 

最新新聞:

我已經驗證了,在我的XML以上的原因。我只是將導航抽屜XML回覆到ListView本身...

<!-- The navigation drawer --> 
<ListView 
    android:id="@+id/lvDrawerItems" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:background="@color/white" /> 

...並且不再自動打開。外觀和工作正常。我的目標是添加一個TextView標題而不會在啓動時打開抽屜。

+0

看看[這裏](http://stackoverflow.com/a/37757349)。 –

+0

看看[doc](https://developer.android.com/training/implementing-navigation/nav-drawer.html#Init)關於main和drawer的位置,以及** android:layout_gravity =「start 「**屬性。 – solosodium

+1

@Mike的確是正確的答案。既然你是第一個爲什麼你不在這裏給出正確的答案,所以我可以爲其他人標記。感謝solosodium。 – Alyoshak

回答

1

這並不是說您的抽屜會自動打開。這就是DrawerLayout沒有找到View作爲抽屜使用,所以它的直接子View s正在填補它。 LinearLayout的意思是作爲最後列出的抽屜包含內容View,所以看起來抽屜是開放的。

DrawerLayout決定使用哪個View作爲抽屜,通過查看其直接子對象的橫向layout_gravity設置;即left/rightstart/end。您希望在LinearLayout上設置此屬性,因爲它現在充當抽屜。在您的主佈局中,只需將android:layout_gravity="left"ListView移至LinearLayout即可。

+0

就是這樣。謝謝。又一個可憐的複製粘貼錯誤 – Alyoshak