2015-01-15 15 views
0

我想适合我的列表视图是滚动仅在屏幕的部分的一部分,我有一些其他的设计在屏幕的底部显示,下面是我的代码我在其中添加了布局权重= 1每个其他职位。我已经提到其他职位。制作的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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="25dp" 
     android:textStyle="bold" 
     android:text=" Computer Languages..." /> 

    <ListView 
     android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" > 
    </ListView> 

</LinearLayout> 
+0

ListView android:layout_height =“200dp”更改dp中的列表视图高度。这取决于您希望由lisview覆盖多少大小。 –

回答

2
<ListView 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" > 
</ListView> 

编辑:下面是一个和到ListView所做的更改,作为一个测试你的布局文件,我加了一个TextView,这应该强制ListView控件给它,它希望的空间。如果你在模拟器,手机上测试这个布局,或者在Eclipse/AS中预览它,它确实如预期的那样。

如果这个结构不适合您正常工作,然后还有其他的戏的东西在这里,也许你会编程修改布局,但没有额外的信息/代码,看看,我不能说。

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="25dp" 
     android:textStyle="bold" 
     android:text=" Computer Languages..." /> 

    <ListView android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textSize="25dp" 
     android:textStyle="bold" 
     android:text="test test text" /> 

</LinearLayout> 
+0

'android:layout_weight =“1”'将填满屏幕。应根据需要使用小于1,因为weightSum未定义。 – Rohit5k2

+0

@ Rohit5k2我已经尝试添加的重量,但其不工作了,我 – sarah

+0

@ Rohit5k2是的,它会填满屏幕 - 减上方或下方的任何元素。这正是OP想要的。 WeightSum不考虑到这种情况。 – mjp66

-1

最好的办法是使用RelativeLayout的

<RelativeLayout 
    ... 
> 
<TextView 
android:id="@+id/firstview" 
... 
/> 
<ListView 
    android:layout_below="@+id/firstview" 
    android:layout_above="@+id/lastview" 
... 
/> 
    <TextView 
android:id="@+id/lastView" 
    /> 
</RelativeLayout> 
-1

只需添加下面的ListView你的意见在同一个LinearLayout中相同的水平。这就是说,你可能需要设置layout_height="0dp"在ListView(这样它的高度并不需要一个额外的时间来进行测量),这将导致更高的性能。这对于ListView项目特别有用。只要您保留其他视图的layout_weights未设置(或将它们设置为0),您的ListView将占用所有剩余空间。