2017-01-23 5 views
2

Я установил ScrollView в своем LinearLayout. Я хочу прокрутить TextView. Я попытался использовать ScrollView в xml, как это. Но это не работает.android textview scrollview в макете scrollview

<LinearLayout 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:orientation="vertical" 
    android:padding="8dp" 
    tools:context=".SubpagesLayout.ReportResult"> 

    <!-- first scrollView --> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/edit_corner_blue" 
       android:gravity="center" 
       android:text="@string/personalInformation" 
       android:textColor="@android:color/white" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="8dp" 
       android:orientation="horizontal"> 

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

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text=" TestData" /> 

      </LinearLayout> 

      <!-- second scrollView --> 
      <ScrollView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
        <TextView 
         android:id="@+id/textOphthalmoscopy" 
         android:layout_width="match_parent" 
         android:layout_height="80dp" 
         android:text="standard instrth various settings that allow focusing and adjustment of the light source to accommodate the viewer and to evaluate various features of the fundus." /> 
      </ScrollView> 
     </LinearLayout> 
    </ScrollView>  
</LinearLayout> 

Я пробовал другой способ, как это, но он все еще не работает.

android:maxLines = "AN_INTEGER" 
android:scrollbars = "vertical" 

Я использовал

myTextView.setMovementMethod(new ScrollingMovementMethod()); 

Так как позволить TextView прокручивать? Если это второй ScrollView.

+1

вы не можете использовать вложенную вид прокрутки, попробуйте использовать NestedScrollView предоставленную андроида, однако избежать вложенности свитки, если и может – Ak9637

+0

да, это NestedScrollView! спасибо за помощь, но почему я должен избегать NestedScrollView? –

+0

Я не знаю технического ответа на этот вопрос, но физически его не рекомендуется иметь один прокрутки внутри другой прокручивающейся поверхности, так как андроид основан на MATERIAL UI – Ak9637

ответ

1

Вы можете использовать NestedScrollView вместе с ListView для показа прокрутки TextView.

ListView будет иметь фиксированный размер, чтобы он не занимал общую высоту предметов внутри.

Таким образом, макет может выглядеть следующим образом.

<LinearLayout 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:orientation="vertical" 
    android:padding="8dp" 
    tools:context=".SubpagesLayout.ReportResult"> 

    <!-- first scrollView --> 
    <NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/edit_corner_blue" 
       android:gravity="center" 
       android:text="@string/personalInformation" 
       android:textColor="@android:color/white" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="8dp" 
       android:orientation="horizontal"> 

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

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text=" TestData" /> 
      </LinearLayout> 

      <ListView 
       android:layout_width="match_parent" 
       <!--set a fixed height--> 
       android:layout_height="80dp" 
       .. Other attributes 
      </ListView> 
     </LinearLayout> 
    </NestedScrollView>  
</LinearLayout> 

И список элементов из ListView может содержать TextView вы хотите прокрутки. Установите высоту TextView на wrap_content.

<LinearLayout 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:orientation="vertical" 
    android:padding="8dp" 
    tools:context=".SubpagesLayout.ReportResult"> 

     <TextView 
      android:id="@+id/textOphthalmoscopy" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="standard instrth various settings that allow focusing and adjustment of the light source to accommodate the viewer and to evaluate various features of the fundus." /> 
</LinearLayout> 

Теперь ваш ListView будет иметь один элемент, и это будет прокручиваться с поведением по умолчанию списка.

Весь макет будет прокручиваться через NestedScrollView.

Надеюсь, что это поможет!

+0

ha это ты снова! действительно спасибо за вашу помощь. Таким образом добавьте новый макет, это сложнее, я все равно его понимаю, спасибо @Reaz Murshed –

+0

Рад снова найти вас здесь. Пожалуйста, поддержите, если это полезно. :) –

1

Имея scrollView внутри другого scrollView, это не хорошая рекомендация, но вы можете проверить ниже ссылки, это может решить вашу проблему.

Solution 1

Solution 2

+0

Я основал решение, спасибо @Anti DS –

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