2016-03-03 3 views
0

У меня есть основной ScrollView, а затем у меня есть дочерний LinearLayout и у него есть ListView. Я не уверен, почему это не прокрутка. Я читал о том, как listview не должен находиться внутри прокрутки, но мне нужен мой макет для прокрутки, а затем просмотр списка. Я не уверен, что это правильный подход. Пожалуйста, направляйте.ListView не прокручивается с родительским LinearLayout?

Это работает на моем планшете с большим экраном, но не на моем телефоне, который имеет меньший экран, и вам нужно прокрутить, чтобы просмотреть список полностью. Listview работает, если я использую линейный макет, но затем я не вижу его полностью, потому что он находится в нижней части макета.

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fitsSystemWindows="true" > 

<LinearLayout 
    android:id="@+id/user_info" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:paddingTop="46dp" 
    android:paddingLeft="24dp" 
    android:paddingRight="24dp" > 

    <Spinner 
     android:id="@+id/userTypeSpinner" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" /> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp"> 
     <EditText android:id="@+id/fname" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="text" 
      android:hint="First Name"/> 
    </android.support.design.widget.TextInputLayout> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" > 
     <EditText android:id="@+id/lname" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="text" 
      android:hint="Last Name"/> 
    </android.support.design.widget.TextInputLayout> 

    <LinearLayout 
     android:id="@+id/staff_username" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:visibility="gone" > 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" > 
      <EditText android:id="@+id/uname" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:hint="Username"/> 
     </android.support.design.widget.TextInputLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/staff_password" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:visibility="gone" > 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" > 
      <EditText android:id="@+id/upassword" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textPassword" 
       android:hint="Password"/> 
     </android.support.design.widget.TextInputLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/staff_email" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:visibility="gone" > 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" > 
      <EditText android:id="@+id/uemail" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:hint="Email"/> 
     </android.support.design.widget.TextInputLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/staff_permissions" 
     android:layout_marginTop="8dp" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:visibility="gone" 
     > 

     <ListView 
      android:id="@+id/permission_list" 
      android:layout_width="fill_parent" 
      android:layout_height="200dp" 
      android:fadeScrollbars="false" 
      /> 

    </LinearLayout> 

    <android.support.v7.widget.AppCompatButton 
     android:id="@+id/addUserBtn" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="24dp" 
     android:layout_marginBottom="24dp" 
     android:padding="12dp" 
     android:text="@string/add_new_user"/> 

</LinearLayout> 

+4

Возможный дубликат [Android просмотра списка внутри вид прокрутки] (HTTP: // StackOverflow. com/questions/18367522/android-list-view-inside-a-scroll-view) –

+0

Вам не следует использовать ScrollView. Без ScrollView это сработает. –

+0

Он работает без него, но вы не можете увидеть его полностью, потому что экран маленький, вот почему я использовал scrollview для прокрутки вниз по макету –

ответ

0

Такая же проблема у меня была. Это мой код. Проверьте это.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/login_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/login" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <LinearLayout 
      android:layout_width="250dp" 
      android:layout_height="270dp" 
      android:layout_marginTop="40dp" 
      android:gravity="center" 
      android:orientation="vertical" > 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="30dp" 
       android:orientation="vertical" > 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/username_login" /> 

       <EditText 
        android:id="@+id/username_login" 
        android:layout_width="200dp" 
        android:layout_height="30dp" 
        android:background="@drawable/edit_text" 
        android:inputType="text" 
        android:paddingLeft="5dp" 
        android:paddingTop="2dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/password_login" /> 
      </LinearLayout> 
     </LinearLayout> 
    </ScrollView> 

</LinearLayout> 

Не используйте scrollview как родительский. Просто возьмите scrollview внутри родительского макета, то есть LinearLayout или RelativeLayout.

+0

где есть список? –

+0

Я не использовал listview в этом коде. Но я даю вам представление о том, как это работает. Прокрутка может быть причиной, по которой ваш список не прокручивается. Просто попробуйте один раз. Надеюсь, это поможет вам. –

0

Попробуйте заменить ListView с LinearLayout и добавить те же элементы (просмотр) в этом, которые вы хотите добавить в ваш ListView

Смежные вопросы