2017-11-25 13 views
0

내 액티비티 레이아웃 파일에서 AppBarLayoutToolbar으로 정의했습니다. 그런 다음 스크롤 할 수 있어야하는 다른 파일의 Activity 주 콘텐츠를 포함합니다.툴바에 스크롤 가능한 레이아웃 포함하기

두 번째 활동의 내용을 스크롤 할 수 있지만 아래쪽으로 스크롤하면 레이아웃의 일부가 잘려서 나옵니다. (나는 아래쪽 버튼을 볼 수 없다). Toolbar은 스크롤 만 가능하고 내용은 원하지 않습니다.

activity_first :

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.constraint.ConstraintLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFF" 
     tools:context=".StartScreens.Home.HomeScreens.FirstActivity"> 

     <!-- Content --> 

     <EditText 
      android:id="@+id/EditText_Title" 
      android:layout_width="wrap_content" 
      android:layout_height="42dp" 
      android:layout_marginStart="20dp" 
      android:layout_marginTop="10dp" 
      app:layout_constraintTop_toBottomOf="parent" 
      android:ems="10" /> 

     <RatingBar 
      android:id="@+id/Activity_RatingBar_Stars" 
      android:layout_width="241dp" 
      android:layout_height="42dp" 
      app:layout_constraintLeft_toRightOf="@+id/TextView_Stars" 
      android:inputType="number" 
      android:maxLength="1" 
      app:layout_constraintTop_toBottomOf="@+id/EditText_Title" 
      android:layout_marginStart="20dp" /> 

     <!-- A lot more content --> 

     <Button 
      android:id="@+id/Button_Clear" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="Clear" 
      android:text="@string/clear" 
      android:layout_marginTop="20dp" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintVertical_bias="0.775" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintRight_toLeftOf="@+id/Button_Submit" /> 

     <Button 
      android:id="@+id/Button_Submit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="ButtonClickSubmit" 
      android:text="@string/submit" 
      android:layout_marginTop="20dp" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintVertical_bias="0.775" 
      app:layout_constraintRight_toRightOf="parent" 
      app:layout_constraintLeft_toRightOf="@+id/Button_Clear" /> 

    </android.support.constraint.ConstraintLayout> 

</ScrollView> 

나는 AppBarLayout이 줄을 app:layout_constraintTop_toBottomOf="parent">을 추가하면, 나는 모든 콘텐츠를보기 위해 스크롤 할 수

<android.support.constraint.ConstraintLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="#FFF" 
    tools:context=".StartScreens.Home.HomeScreens.FirstActivity" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/Activity_AppBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <include android:id="@+id/Activity_Toolbar" 
      layout="@layout/toolbar" /> 

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

    <include android:id="@+id/Activity_First_Content_Include" 
     layout="@layout/activity_first_content" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@id/Activity_AppBar"/> 

</android.support.constraint.ConstraintLayout> 

activity_first_content, 심지어 단추. 하지만 포함 된 콘텐츠는 AppBar/Toolbar 위에 표시되고 Toolbar은 사라졌습니다.

요약하면 레이아웃은 스크롤 가능하지만 아래쪽 두 개의 버튼이 잘립니다. 화면의 오른쪽 가장자리에있는 회색 스크롤바는 아래쪽으로 스크롤 할 때 화면의 "아래"/ "과거"로 계속 이동합니다.

코드 개선 방법에 대한 의견이 있으십니까?

+0

그냥 난 그냥 잘라, 당신의 activity_first_content 레이아웃, 어디 빠른 질문 당신은 당신의 RatingBar 레이아웃 파일이 거대한 것을 – Nero

+0

에서 언급 한 당신의 TextView_Stars 요소가되기 때문에 : 그럼 당신은이 같은 레이아웃을 가질 수 있습니다 많은 콘텐츠. 나는 코드가 지금별로 의미가 없을 수도 있지만, 파일의 내용은 중요하지 않다는 것을 알고 있습니다. 레이아웃이 올바르게 작동합니다. 스크롤하지 마십시오. – Fred

+0

최상위 XML 파일에서 ''태그는 'wrap_content' 높이를 사용합니다. '0dp'로 변경하고'app : layout_constraintBottom_toBottomOf = "parent"'를 추가하면 작동합니까? –

답변

0

내가 게시 한 레이아웃으로 놀아 보느라 시간을 보내고 포함 문제에 하단 제약 조건을 추가하면 문제가 완전히 사라지는 문제를 재현 할 수 있습니다.

ConstraintLayout을 최상위보기로 유지하면서 문제를 해결할 수 없지만 대신 LinearLayout으로 전환하면 문제를 해결하기가 쉽습니다.

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFF" 
    android:orientation="vertical" 
    tools:context=".StartScreens.Home.HomeScreens.FirstActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/Activity_AppBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <include 
      layout="@layout/toolbar" 
      android:id="@+id/Activity_Toolbar"/> 

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

    <include 
     layout="@layout/activity_first_content" 
     android:id="@+id/Activity_First_Content_Include" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

</LinearLayout>