【发布时间】:2015-06-14 00:20:32
【问题描述】:
我正在尝试创建类似于附加图像的 UI。我的 xmal 代码如下。我遇到了一个主要问题。我知道我不能在scrollview 中嵌入listview。问题是,由于列表视图顶部的所有内容,只有一小部分无论我给父线性布局设置什么样的高度,都会显示列表视图。
如何布局我的 UI,以便列表视图可见并且可以滚动到它上面的其他 UI 元素?任何建议都是可以接受的。 提前致谢
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bkicon"
android:id="@+id/linearLayout1">
<LinearLayout
android:orientation="horizontal"
android:minWidth="25dp"
android:minHeight="25dp"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/bkicon"
android:weightSum="4"
android:id="@+id/linearLayoutButtons">
<Button
android:text="Posts"
android:layout_width="50dp"
android:layout_height="100dp"
android:background="@drawable/mybuttonSelected"
android:layout_weight="1"
android:id="@+id/btngohomemb" />
<Button
android:text="Chat"
android:layout_width="50dp"
android:layout_height="100dp"
android:background="@drawable/mybutton"
android:layout_weight="1"
android:id="@+id/btngohomemb" />
<Button
android:text="Business"
android:layout_width="50dp"
android:layout_height="100dp"
android:background="@drawable/mybutton"
android:layout_weight="1"
android:id="@+id/btnMBRefresh" />
<Button
android:text="Resources"
android:layout_width="50dp"
android:layout_height="100dp"
android:background="@drawable/mybutton"
android:layout_weight="1"
android:id="@+id/btnMBNewMessage" />
</LinearLayout>
<Button
android:text=""
android:gravity="left|center_vertical"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textColor="#000000"
android:textStyle="bold"
android:background="@drawable/mybutton"
android:id="@+id/locHeader" />
<TextView
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="left|center_vertical"
android:textColor="#000000"
android:id="@+id/locBody"
android:background="#FFFFFF" />
<TextView
android:text="\nWhat's on your mind?\n"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="left|center_vertical"
android:textColor="#ffffff"
android:id="@+id/lblWhatonyourmind"
android:background="#000000" />
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView1" />
<EditText
android:inputType="textMultiLine"
android:lines="8"
android:minLines="6"
android:gravity="top|left"
android:maxLines="10"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:scrollbars="vertical"
android:id="@+id/etNewPost" />
<LinearLayout
android:orientation="horizontal"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bkicon"
android:weightSum="3"
android:id="@+id/linearLayoutButtons">
<Button
android:text="Add Pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/mybutton"
android:layout_weight="1"
android:id="@+id/btnPostPicture" />
<CheckBox
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/chbxRestrict" />
<Button
android:text="Post"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/mybutton"
android:layout_weight="1"
android:id="@+id/btnPost" />
</LinearLayout>
<ListView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/lvPostedMsges" />
</LinearLayout>
【问题讨论】:
-
发生这种情况是因为 Listview 上方元素的高度占用了它们所需的最小空间,因此将一小部分空间留给列表视图,因为线性布局在另一个优先级之后堆叠元素到前面的元素。因此,请考虑以更好的方式重新设计您的页面。
-
谢谢纳德。所以没有办法将静态元素与底部的列表视图混合在一起?
-
您可以使用 LinearLayout 代替 ListView,如果需要,可以通过编程方式将视图放入其中
-
@Ryoghurt 谢谢。也会试试的。
标签: android user-interface android-layout