ListView inside constraint view gets clipped and not scrolling

两盒软妹~` 提交于 2020-07-21 06:34:26

问题


I have a listview inside my ConstraintLayout and I read its supposed to automatically be scrollable, but the list just gets cut-off at the bottom with more items left to be displayed and its not scrollable, I dont know if Im setting some atribute wrong or if I have to add something for listview to scroll??

Here is my code

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/special_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/white"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Today is:"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:visibility="gone"
        app:layout_constraintTop_toTopOf="parent"/>

    <TextView
        android:id="@+id/date_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/white"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="The date is:"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/special_text_view"/>



     <TextView
            android:id="@+id/oc_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:text="The day of the omer is:"
            android:visibility="gone"
            android:textSize="24sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/date_text_view"/>

    <ListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="24dp"
            android:layout_marginBottom="24dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@id/oc_text_view"
            app:layout_constraintBottom_toBottomOf="parent">
    </ListView>

    </android.support.constraint.ConstraintLayout>

Thanks


回答1:


You need to close the chain, like so:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/special_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Today is:"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@id/date_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/date_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="The date is:"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        app:layout_constraintBottom_toTopOf="@id/oc_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/special_text_view" />


    <TextView
        android:id="@+id/oc_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="The day of the omer is:"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@id/list_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/date_text_view" />

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="24dp"
        android:layout_marginTop="24dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/oc_text_view">
    </ListView>
</android.support.constraint.ConstraintLayout>



回答2:


While using ConstraintLayout you have to add constraints for constraintTop, constraintRight, constraintBottom, constraintLeft or constraintStart and constraintEnd. Please constraint all your four sides of constrant layout(or use Constraint Start or End). Then only it works as expected

use below code in list view:
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"

For Reference: https://developer.android.com/training/constraint-layout/index.htmlenter link description here




回答3:


Try This...

Here I'm populating 10 items in the ListView. See the attached result.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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"
tools:context="com.silambarasan.test.MainActivity"
>

 <TextView
     android:id="@+id/special_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="8dp"
     android:text="Today is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     android:visibility="visible"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent"
     />

 <TextView
     android:id="@+id/date_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginBottom="8dp"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="8dp"
     android:text="The date is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     app:layout_constraintBottom_toTopOf="@+id/oc_text_view"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toBottomOf="@id/special_text_view"
     />


  <TextView
     android:id="@+id/oc_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="16dp"
     android:text="The day of the omer is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     android:visibility="visible"
     app:layout_constraintBottom_toTopOf="@+id/guideline1"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.47"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toBottomOf="@id/date_text_view"
     />

  <ListView
     android:id="@+id/list_view"
     android:layout_width="match_parent"
     android:layout_height="0dp"
     android:layout_marginTop="8dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.0"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="@+id/guideline1"
     app:layout_constraintVertical_bias="1.0"
     >
  </ListView>

  <android.support.constraint.Guideline
      android:id="@+id/guideline1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      app:layout_constraintGuide_percent="0.3"
     />

  </android.support.constraint.ConstraintLayout>

Result:



来源:https://stackoverflow.com/questions/48220829/listview-inside-constraint-view-gets-clipped-and-not-scrolling

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!