如何在一个屏幕上显示列表项和文本视图以及按钮

时间:2014-05-20 17:47:39

标签: android android-layout

我想要一个这样的屏幕:

enter image description here

基本上我有一个列表,在底部我有一个文本字段和一个按钮。

这就是我现在的布局,但是,我没有看到文本字段和按钮。我只看到列表视图。

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

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:cacheColorHint="#00000000"/>

    <EditText
        android:id="@+id/send_comment"
        style="@style/FormalSingleLineEditText"
        android:layout_width="match_parent"
        android:hint="write something" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send"
        android:id="@+id/sendbutton"
    />

</LinearLayout>

列表布局如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:descendantFocusability="blocksDescendants"
    android:background="#FFFFFF"
    android:divider="#F0EFF5"
    >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

    <TextView
        android:id="@+id/note"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />


</LinearLayout>

3 个答案:

答案 0 :(得分:1)

尝试将ListView布局参数更改为此类

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:divider="#b5b5b5"
    android:dividerHeight="1dp"
    android:cacheColorHint="#00000000"/>

layout_weight属性使其使用TextViewButton尚未占用的整个高度。

答案 1 :(得分:1)

我编写了一个版面非常相似的应用程序,并在下面包含了我的布局的XML。

让父母成为RelativeLayout。在父级内部创建一个Button,根据需要设置宽度和高度,将layout:alignparent设置为Bottom和Right。创建一个EditText,将高度设置为与按钮相同,将width设置为match_parent,将layout:alignParent设置为Bottom,将layout:alignComponent设置为right:left。这将在屏幕底部放置一个EditText,其右边缘触摸按钮的左边缘,其左边缘触摸屏幕的左侧。现在,将ListView添加到布局中。将height和width设置为match_parent,将layout:alignComponent设置为bottom:top。这基本上应该让你到那里。如果您遇到困难,请查看下面的代码:

我的布局XML:

<?xml version="1.0" encoding="utf-8"?>

<ListView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/listView"
    android:layout_alignParentLeft="false"
    android:layout_marginLeft="0dp"
    android:layout_alignParentTop="true"
    android:layout_marginTop="0dp"
    android:layout_above="@+id/messageET" />

<ImageView
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:id="@+id/addAttachment"
    android:padding="5dp"
    android:layout_alignParentLeft="true"
    android:src="#182c99"
    android:background="@color/kinetic_white"
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    android:layout_alignParentTop="false" />

<com.kineticdata.kineticresponse.Widgets.FontEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/messageET"

    android:layout_toRightOf="@+id/addAttachment"
    android:layout_toLeftOf="@+id/sendButton"
    android:hint="@string/type_message"
    android:gravity="center_vertical"
    android:background="@color/kinetic_white"
    android:paddingLeft="5dp"
    android:layout_alignParentBottom="true"
    android:minHeight="60dp"
    android:focusableInTouchMode="true"
    android:focusable="true" />

<View
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:background="@color/kinetic_light_gray"
    android:layout_alignParentLeft="false"
    android:layout_alignParentTop="false"
    android:layout_toRightOf="@+id/addAttachment"
    android:layout_alignTop="@+id/messageET" />

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@color/kinetic_light_gray"
    android:layout_below="@+id/listView" />

<view
    android:layout_width="wrap_content"
    android:layout_height="60dp"
    class="com.kineticdata.kineticresponse.Widgets.FontTextView"
    android:id="@+id/sendButton"
    android:text="@string/send"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:gravity="center_vertical" />

<RelativeLayout
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/attachmentContainer"
    android:background="@color/kinetic_black"
    android:layout_above="@+id/messageET"
    android:layout_marginLeft="20dp"
    android:layout_marginBottom="5dp">

    <ImageView
        android:layout_width="96dp"
        android:layout_height="96dp"
        android:id="@+id/attachedImage"
        android:layout_centerInParent="true" />

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:id="@+id/cancelButton"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:background="@color/kinetic_barely_gray"
        android:layout_marginRight="2dp"
        android:layout_marginTop="2dp"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

答案 2 :(得分:0)

如果我本来会去你的地方我会使用RelativeLayout而不是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
        <LinearLayout
           android:id="@+id/bottom_linear"
           android:alignParentBottom="true"
           android:alignParentLeft="true"
           android:layout_width="fill_parent"
           android:orientation="horizontal"
           android:layout_height="fill_parent"
           android:layout_height="50dp">
           <EditText
              android:id="@+id/send_comment"
              android:layout_width="wrap_cotent"
              android:layout_height="fill_parent"
              android:layout_weight="0.7"
              />

           <Button
              android:id="@+id/sendbutton"
              android:layout_width="wrap_cotent"
              android:layout_height="fill_parent"
              android:layout_weight="0.3"
              />

        </LinearLayout>

        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/bottom_linear"
            android:alignParentTop="true"
          />
</RelativeLayout>

你正在做的是创建一个relativelayout并添加一个水平方向的linearlayout并放置在屏幕的底部...然后你添加了edittext和按钮,其重量将有助于动态给出70%和30%的宽度%..

然后你要添加一个listview并告诉android将它附加在顶部并将其保持在底部linearlayout上方,它也将覆盖整个屏幕上方的linearlayout ......

希望它有所帮助谢谢...(如果xml中出现任何错误,请尝试使用CTRL + SPACE进行猜测,当我无法访问eclipse时,我写了这个...)

thx