1

Х ребят,LinearLayout кадрирование, но не расширяется в Scrollview

Я искал здесь и там, но не могу найти решение. Я использую LinearLayout внутри ScrollView внутри LinearLayout, LinearLayout -> ScrollView -> LinearLayout. Однако он не расширяется, когда я хочу, вместо этого он обрабатывает мой макет.

Кто-нибудь знает, что мне здесь не хватает? Может быть немного грязный, но пытался много Stuf

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF" 
android:orientation="vertical"> 

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

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

     <include 
      android:id="@+id/image_slider_menu" 
      layout="@layout/image_slider" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="3" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:background="@color/menu" 
      android:orientation="horizontal" 
      android:gravity="center_vertical"> 

      <ImageView 
       android:id="@+id/bars_map" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="4" 
       android:padding="10dp" 
       android:src="@drawable/maps" /> 

      <TextView 
       android:id="@+id/report" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="8" 
       android:gravity="left|center_vertical" 
       android:text="Meld Misbruik" 
       android:clickable="true" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="3" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="15dp"> 

       <TextView 
        android:id="@+id/bar_view_title" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="title" 
        android:textSize="22sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/bar_view_description" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="description" 
        android:textSize="14sp" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@color/menu" 
       android:orientation="vertical" 
       android:paddingLeft="15dp" 
       android:paddingTop="5dp"> 

       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Contact" 
        android:textSize="22sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/bar_view_contact" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Gegevens" /> 
      </LinearLayout> 
     </LinearLayout> 


    </LinearLayout> 
</ScrollView> 
</LinearLayout> 
+0

Изменено так, как вы, ребята, предложили. Он расширяется (текст исчезает внизу), но я не могу прокручивать его. Теперь я пойду домой, я проверю это позже. В любом случае, спасибо! –

+0

Проблема - это значения веса. Я удалил их, дал некоторые высоты и обернул содержимое, и теперь он снова прокручивается ... Однако это не делает его отзывчивым. –

ответ

2

Проблема заключается в том, что значения веса. Я удалил их, дал некоторые высоты и обернул содержимое, и теперь он снова прокручивается ... Однако это не делает его отзывчивым.

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

0

ничего не пропустил, это правильный способ вести себя, к сожалению ... Ваш LinearLayout должен иметь wrap_content без веса, проверить это: ScrollView's Handy Trick

также вы может измерять как Scrollview и Линейные и если svHeight> llHeight затем ll.getLayoutParams() высота = sv.height

редактировать:. хорошо, некоторые удобный код для вас:

<ScrollView 
    android:id="@+id/sv" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<LinearLayout 
    android:id="@+id/ll" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
... 

в коде:

sv.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 

     @SuppressLint("NewApi") 
     @Override 
     public void onGlobalLayout() { 
      if(Build.VERSION.SDK_INT<16) 
       sv.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
//misspell :D 
      else 
       sv.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
      int svHeight=sv.getMesuredHeight(); 
      if(svHeight>ll.getMeasuredHeight()) 
       ll.getLayoutParams().height=svHeight; 
     } 
} 
+0

Какая линейная? Первый или второй? –

+0

второй, это внутри ScrollView. Во-первых, не нужно, lint propably предупреждает вас об этом (ofc, если вы действительно используете статический цвет фона) – snachmsm

+0

~ Nevermind. В sv.getMeasuredHeight() была допущена орфографическая ошибка. –

0

Ваш LinearLayout не может изменить размер, если содержание слишком долго, потому что вы установите фиксированный размер.

Просто изменение:

android:layout_height="0dp" 
android:layout_weight="1" 

по:

android:layout_height="wrap_content" 
+0

Сделал это, он расширен. Но он не будет прокручиваться. –

+0

Каков ваш макет/image_slider? – Graya

+0

Это пользовательский графический движок. Может возникнуть проблема, если я подумаю об этом. Я попробую кое-что с этим. –

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

  • Нет связанных вопросов^_^