2017-12-13 16 views
1

최근 내 앱의 기본 화면에 탐색 창을 구현했습니다. 어떤 이유로 작은 회색 (또는 투명한 검은 색) 막대가 그 위에 렌더링됩니다.
스크린 샷 :회색 막대가 탐색 창에 표시됩니다.

Screenshot

레이아웃 코드 :

<android.support.design.widget.CoordinatorLayout 
... > 

    <LinearLayout 
     ... > 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/appbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="@dimen/appbar_padding_top" 
      android:theme="@style/AppBarOverlay"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:popupTheme="@style/PopupOverlay"/> 

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

     <android.support.v4.widget.DrawerLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/drawer_layout"> 

      <fragment 
       ... /> 

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

       <ListView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:id="@+id/list_nav"/> 

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

     </android.support.v4.widget.DrawerLayout> 

    </LinearLayout> 

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

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

자바 부분은 그냥 일반적인 목록을 채우는 물건입니다. 더 많은 코드가 필요한 경우 알려 주시기 바랍니다.

어떻게이 이상한 막대를 제거 할 수 있습니까?

+3

어쩌면 그것은 당신의 도구 모음에서 온 것입니다. 질문을 편집하고 툴바 XML 코드를 추가하십시오. –

+0

왜'NavigationView' 안에'ListView'가 있습니까? 그건 네비게이션 뷰가 사용되는 방법이 아니야. 'menu' 리소스로부터 자체 목록을 제공합니다. 목록이'ListView'의 스크린 샷에 표시되어 있습니까, 아니면 NavigationView의 메뉴입니까? –

+0

아마도 그것은 수평 스크롤바입니다 ... –

답변

1

NavigationView은 제공되는 리소스에서 자체 내부 구조를 구축하는 매우 전문화 된 ViewGroup입니다. 일반 ViewGroup으로 사용하기위한 것이 아닙니다. 즉, 레이아웃 XML 또는 코드에서 자식 View을 직접 추가하지 않아도됩니다.

자녀를 수동으로 추가하는 경우 치명적인 오류가 발생하지 않으므로 이는 즉시 명백하지 않습니다. 안드로이드 스튜디오의 최근 네비게이션 드로어 템플릿은 기본 서랍이 NavigationViewDrawerLayoutView으로 사용되며 서랍이 NavigationView 일 필요는 없다는 표시가 없기 때문에 더욱 혼란 스럽습니다. 서랍은 거의 모든 종류의 View 또는 ViewGroup 일 수 있습니다.

이 경우 그림자는 내부적으로 NavigationView의 내부에서 발생하는 것 같습니다. 그러나 해당 특수 기능에 사용되지 않으므로 NavigationView을 완전히 제거 할 수 있으며 ListView은 자체 서랍으로 사용할 수 있습니다.

<NavigationView> 요소와 관련된 모든 코드를 제거하기 만하면됩니다. ListView을 서랍으로 설정하려면 속성을 start으로 설정하고 layout_width을 정확한 값으로 설정하십시오. 예 : 240dp.