【问题标题】:Making android listview layout scrollable使android listview布局可滚动
【发布时间】:2011-05-17 16:19:32
【问题描述】:

我有一个 xml 文件,其布局为 ASCII 格式:

---------------
| ImageView
--------------
| TextView
--------------
| List...
--------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.some.app"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
<ImageView 
android:id="@+id/MovieCover"
android:layout_width="100dip"
android:layout_height="100dip"
/> 
 <TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="16sp"
    android:padding="10dp"
    android:id="@+id/TextHeader"
    android:background="#000000">
</TextView>
<ListView android:id="@+id/ListView02" android:layout_height="wrap_content"
 android:layout_width="fill_parent">
 </ListView>
 </LinearLayout>

当我的 ImageView 和 TextView 占据屏幕的 3/4 以上时,我在显示布局时遇到问题。如何使用正在显示的 ListView 使 ImageView 和 TextView 可滚动?此时,只有 ListView 可以滚动,我希望整个布局都可以滚动,就好像它们本身就是一页一样。

我该怎么做?

【问题讨论】:

  • 理想情况下,将整个布局放在滚动视图中应该可以工作,但 android 指南说不要将 ListView 放在滚动视图中,很想知道解决方案因此投票!

标签: java android user-interface listview layout


【解决方案1】:

你可以使用&lt;ScrollView&gt;作为你的布局容器

类似的东西

<ScrollView>
    <LinearLayout>
    // your layout here
    </LinearLayout>
</ScrollView>

我们内部需要LinearLayout的原因是ScrollView只能有一个direct child

【讨论】:

    【解决方案2】:

    黄油使用两个带有layoutweight="1"的LinearLayout并将ScrollView放在一个中,将listview放在另一个中

    <LinearLayout android:layout_weight="1"
            android:layout_height="fill_parent" android:layout_width="fill_parent">
            <ScrollView android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                <LinearLayout android:orientation="vertical"
                    android:layout_width="fill_parent"            
                                    android:layout_height="fill_parent">
    
                              <!-- scroll view content -->
                </LinearLayout>
            </ScrollView>
        </LinearLayout>
        <LinearLayout android:layout_weight="1"
            android:layout_height="fill_parent" android:layout_width="fill_parent">
            <ListView android:id="@+id/ListView02" android:layout_height="wrap_content"
                android:layout_width="fill_parent">
            </ListView>
        </LinearLayout>
    

    【讨论】:

      【解决方案3】:

      ListView 有 addtoHeader 和 addtoFooter 功能。制作一个单独的布局并将其添加到 ListView 的标题中。在您的情况下,对 imageview 和 textview 进行相对布局,并将其添加到 listview 的标题中。整个页面将开始滚动。

      【讨论】:

        【解决方案4】:

        如何将 ImageView 和 TextView 放在一个布局中,然后将此布局放在一个 ScrollView 中?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-02
          • 1970-01-01
          • 1970-01-01
          • 2019-03-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多