我一直在这里搜索,但似乎无法找到解决方案。我在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)
没有错过,这是正确的行为方式,不幸的是......你的LinearLayout应该有没有重量的wrap_content,请检查:ScrollView's Handy Trick
你也可以测量SCrollView和Linear,如果是svHeight&gt; llHeight那么ll.getLayoutParams()。height = 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;
}
}
答案 1 :(得分:0)
如果因为设置了固定大小,内容太长,则无法调整LinearLayout的大小。
只需改变:
android:layout_height="0dp"
android:layout_weight="1"
by:
android:layout_height="wrap_content"
答案 2 :(得分:0)
问题是体重值。我删除了它们,给了一些高度并包装内容,现在它再次滚动....但是这并没有使它响应。
这确实回答了我的问题,但并不需要我想要的东西。然而,即使在不同的分辨率下,布局看起来也足够好,所以我就这样离开了。