1

我正在尝试制作一个文件管理器应用程序,其中我在屏幕上半部分的 ListFragment 中列出某个目录的内容(不用说这个列表可以滚动),并且当用户点击某个文件/文件夹时,与其关联的元数据应该在位于片段正下方的 FrameLayout 中可见,以及文件类型的缩略图。这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" 
android:layout_height="match_parent"
android:background="#00000000">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.4" >

<fragment
    android:id="@+id/titles"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    class="com.test.fileManager.FileManagerActivity$TitlesFragment"
/>

</ScrollView>

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.6"
    android:background="#00000000"
    >
</FrameLayout>

</LinearLayout>

我首先使用了没有 ScrollView 标记的“layout_weight”属性,但是片段不尊重这些权重属性,并且列表很好地延伸到屏幕底部。

当我将片段包含在 ScrollView 标记中时(我知道..不是一个好主意!),我一次只能看到一个列表条目。

无论如何,我可以让 ListFragment 占据屏幕的前 40% 并在必要时在 40% 的屏幕空间中显示可滚动列表?

4

1 回答 1

5

首先,摆脱ScrollView. 如果TitlesFragment是 a ListFragment,则不能可靠地将 a ListView(来自ListFragment)放入 a 中ScrollView

接下来,将片段的高度设置为0px。您不能可靠地match_content用作 a 的高度ListView

然后,纯粹按百分比做事,也将你的高度设置FrameLayout0px,然后根据需要分配权重(例如,片段为 40,片段中为 60 FrameLayout)。

于 2012-03-20T11:32:53.573 回答