在线性布局中调整scrollview的高度属性

时间:2015-06-23 23:41:28

标签: android xml listview scrollview android-linearlayout

我的listview中有一个项目的布局。我的问题是滚动视图。我存储在其中的评论文本视图的长度可以在2个字到255个字符之间变化。这会在我的列表视图中产生一个问题,因为当文本很少时,它会与当前设置留下巨大的差距。我不想摆脱重量系统,因为它对我的布局中的所有其他项目非常有帮助,但我不知道如何在这里使用它,以便滚动视图的高度环绕内容和在必要时不占用更多空间。我已经尝试为我的scrollview设置一个固定的高度以及摆脱它的权重,并使用换行内容,但是当有大量文本时换行内容不起作用。总而言之,当文字很少时,我留下了巨大的空白,当有很多文本时,如果我使用换行内容,它将填满整个屏幕并毁掉使用滚动视图保存的全部要点空间。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="220dp"
android:orientation="vertical"
android:weightSum="250">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="20"
    android:orientation="horizontal"
    android:weightSum="100">


    <TextView
        android:layout_width="0dp"
    android:id="@+id/leaguetxt"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="50"
        android:gravity="center"
        android:text="English Premier League"
        android:textColor="#067103"
        android:textStyle="bold" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/datetxt"
        android:layout_gravity="center"
        android:layout_weight="50"
        android:gravity="center"
        android:text="BET UNTIL : 23/05/2015 15:00 GMT"
        android:textColor="#067103"
        android:textSize="12sp"
        android:textStyle="italic" />


</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="35">

    <TextView
        android:id="@+id/teamstxt"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:text="Sevilla FC - FC Barcelona"
        android:textColor="#067103"
        android:textSize="23sp"
        android:textStyle="bold" />

</LinearLayout>



<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="40"
    android:orientation="horizontal">
    <!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->


    <!-- Name Label -->
    <TextView
        android:layout_width="0dp"
        android:id="@+id/bettxt"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="30"
        android:gravity="center"
        android:textSize="19sp"
        android:text="FC Barcelona Win and BTTS"
        android:textColor="#067103"
        android:textStyle="" />





</LinearLayout>


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_weight="20"
    android:weightSum="100"
    android:orientation="horizontal"
    android:layout_height="0dp">

    <TextView
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:text="DIFFICULTY : "
        android:layout_gravity="center"
        android:gravity="right"
        android:textColor="#067103"
        android:textStyle="italic"
        android:layout_weight="50"/>
    <TextView
        android:id="@+id/difficultytxt"
        android:layout_weight="50"
        android:textStyle="bold"
        android:layout_gravity="center"
        android:gravity="left"
        android:textColor="#067103"
        android:text="MEDIUM RISK"
        android:layout_width="0dp"
        android:layout_height="fill_parent" />
</LinearLayout>
<ScrollView
    android:layout_width="fill_parent"
    android:layout_weight="90"
    android:layout_height="0dp">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:layout_width="fill_parent"
        android:id="@+id/commenttxt"
        android:layout_height="fill_parent"
        android:textColor="#067103"
        android:text = ""/>
</LinearLayout>

</ScrollView>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_weight="50"
    android:weightSum="100"
    android:orientation="horizontal"
    android:layout_height="0dp">
    <TextView
        android:layout_width="0dp"
        android:layout_weight="40"
        android:layout_height="fill_parent" />
    <Button
        android:id="@+id/oddsbutton"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="20"
        android:layout_gravity="center"
        android:gravity="center"
        android:onClick="SelectBet"
        android:text="3.60"
        android:textColor="#067103"
        android:textSize="18sp" />
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

您不应在列表项中使用ScrollView。滚动列表时会出现毛刺,因为您要同时滚动列表和项目的滚动视图。并且它还会导致计算滚动视图高度的问题,例如您似乎正在经历的高度。

我认为你应该让你对wrap_content进行注释,并修改你的布局以摆脱你的layout_weight。如果您不想总是显示长评论,您可以在一定长度上对它们进行精简,并添加一个按钮来显示/隐藏完整评论。