动态添加视图,保持两个孩子之间的差距?

时间:2015-02-20 12:11:05

标签: android

我无法在两个子视图之间设置线性布局的边距 当我在XML文件中给出保证金时,它不会显示任何更改

1 个答案:

答案 0 :(得分:0)

以下是如何制作聊天屏幕

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

    <LinearLayout
        android:id="@+id/bottom_write_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/message_bar" >

        <EditText
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@drawable/message_field"
            android:hint="Write here"
            android:padding="5dp"
            android:textColor="@color/light_grey" />

        <Button
            android:id="@+id/sendButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="@drawable/send_button"
            android:text="Send"
            android:textColor="#FFF" />
    </LinearLayout>

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/bottom_write_bar"
        android:layout_alignParentTop="true"
        android:cacheColorHint="#00000000"
        android:divider="#00000000"
        android:listSelector="#00000000" >
    </ListView>

    <TextView
        android:id="@+id/emptyChatMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/bottom_write_bar"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/main_empty_list" />

</RelativeLayout>

现在以编程方式添加消息调用以下方法

void addNewMessage(Message m) {
        messages.add(m);
        adapter.notifyDataSetChanged();
        listView.postDelayed(new Runnable()
        {
            public void run()
            {
                listView.smoothScrollToPosition(messages.size() - 1);
            }
        }, 100l);
    }