【问题标题】:Layout with ListView, keyboard push the whole layout out of the screen使用 ListView 布局,键盘将整个布局推出屏幕
【发布时间】:2015-09-13 14:41:30
【问题描述】:

这个问题已经被问过几次了,但无论如何我都无法让我的布局正常工作。 我的视图是一个聊天视图、一个 ListView 和一个 EditText 以及一个发送按钮。

我想要的很简单,只需在显示键盘时按下我的 EditText + 发送按钮。并且不要推高布局的其余部分。

实际布局:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
  <include
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/toolbar"
      layout="@layout/toolbar"
      />

  <ListView
      android:id="@+id/list_chat"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_above="@+id/bottom_write_bar"
      android:layout_alignParentTop="false"
      android:cacheColorHint="#00000000"
      android:divider="#00000000"
      android:listSelector="#00000000"
      android:transcriptMode="alwaysScroll"
      android:layout_alignParentStart="false"
      android:layout_marginTop="100dp"
      android:layout_alignTop="@+id/toolbar"
      ></ListView>
  <LinearLayout
      android:id="@+id/bottom_write_bar"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:background="@drawable/chat_box"
      >

    <EditText
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="5sp"
        android:layout_weight="1"
        android:hint="@string/chatText"
        android:padding="5sp"
        android:textColor="@color/textFieldColor"
        />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_margin="5sp"
        android:src="@drawable/ic_send_grey600_36dp"
        android:onClick="sendMessage"
        android:paddingBottom="5sp"
        android:paddingLeft="15sp"
        android:paddingRight="15sp"
        android:paddingTop="5sp"
        android:background="@android:color/transparent"
        />
  </LinearLayout>
</RelativeLayout>

以及我在清单中尝试的内容:

    android:windowSoftInputMode="stateHidden|adjustPan"

=> 很好地将我的 EditText 以及我的其余布局推到屏幕之外,包括工具栏。

    android:windowSoftInputMode="adjustResize"

=> 什么也不推。 EditText 留在键盘后面

有人看到问题出在哪里吗?谢谢

【问题讨论】:

    标签: android android-layout listview android-listview


    【解决方案1】:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/bottom_write_bar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true">
            <EditText
                android:id="@+id/text"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5sp"
                android:layout_weight="1"
                android:hint="Write here"
                android:padding="5sp"/>
    
            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:clickable="true"
                android:src="@drawable/send_now"
                android:id="@+id/send_button"/>
        </LinearLayout>
    
        <ListView
            android:id="@+id/list"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_above="@id/bottom_write_bar"
            android:layout_alignParentTop="true"
            android:cacheColorHint="#00000000"
            android:divider="#00000000"
            android:stackFromBottom="true"
            android:transcriptMode="alwaysScroll"
            android:listSelector="#00000000" >
        </ListView>
    
    </RelativeLayout>
    

    【讨论】:

    • 工具栏呢?它没有任何改变
    • 我当时正在使用 ActionBarActivity。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2018-08-28
    • 1970-01-01
    • 2019-02-07
    • 2014-06-14
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多