我正在尝试创建一个文件管理器应用程序,在其中列出屏幕上半部分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>
我首先使用'layout_weight'属性而不使用ScrollView标记,但片段不会考虑那些权重属性,列表会一直延伸到屏幕底部。
当我将片段包含在ScrollView标签中时(我知道......不是一个好主意!),我一次只能看到列表中的一个条目。
无论如何,我可以让ListFragment占据屏幕的前40%,并在必要时在40%的屏幕空间中显示可滚动的列表?
答案 0 :(得分:5)
首先,摆脱ScrollView
。如果TitlesFragment
是ListFragment
,则您无法可靠地将ListView
(来自ListFragment
)放入ScrollView
。
接下来,将片段的高度设置为0px
。您无法可靠地使用match_content
作为ListView
的高度。
然后,要完全按百分比执行操作,还要将FrameLayout
的高度设置为0px
,然后根据需要指定权重(例如,40表示片段,60表示FrameLayout
1}})。