将Listview和LinearLayout嵌套在LinearLayout中会产生ui问题

时间:2016-03-15 09:37:07

标签: android listview

我希望我的ui可以滚动。我有一个LinearLayout,其中嵌套了ListView和另一个Linear布局。以下是我的代码

<?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:orientation="vertical">


    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="10"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:paddingTop="10dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_weight="5"
        android:background="@drawable/border"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:layout_marginTop="3dp"
            android:orientation="horizontal">

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

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:orientation="horizontal">

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="09 OCT 2014" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:orientation="horizontal">

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="89.Oct 2034" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:orientation="horizontal">

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="9 Oct 2014" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

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

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

问题是最后出现的少数文本视图在ui中不可见。我怎样才能看到它?

2 个答案:

答案 0 :(得分:0)

使用scrollview,您的问题将得到解决

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

            <!-- everything you already have -->

    </ScrollView>

答案 1 :(得分:0)

根据Docs

  

可以通过滚动的视图层次结构的布局容器   用户,允许它大于物理显示。一个ScrollView   是一个FrameLayout,意味着你应该在其中放置一个子包含   滚动的全部内容;这个孩子本身可能是一个布局   具有复杂的对象层次结构的管理器。经常是孩子   used是一个垂直方向的LinearLayout,呈现一个   用户可以滚动的顶级项目的垂直数组。

     

你永远不应该使用带有ListView的ScrollView,因为ListView   负责自己的垂直滚动。最重要的是,这样做   击败ListView中的所有重要优化以进行处理   使用大型列表,因为它有效地强制ListView显示   它的整个项目列表,用于填充由提供的无限容器   滚动型。

     

TextView类也负责自己的滚动,所以没有   需要ScrollView,但可以将两者结合使用   在更大的容器中实现文本视图的效果。

您的xml就像

<ScrollView>
  <LinearLayout>
    <EditText/>
    <TextView/>
  </LinearLayout>
</ScrollView>

注意: ScrollView

中只应有一个父版面