• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Android’softInputMethod:adjustResize’不起作用

Android 来源:m.d 4次浏览

每当我在我的活动中打开soft keyboard时,它隐藏了一些控制 元素,如退出聊天按钮和recyclerview。 我已经尝试了很多东西,但它似乎没有工作。Android’softInputMethod:adjustResize’不起作用

这是我的活动布局XML文件:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:weightSum="4" 
     tools:ignore="UselessParent"> 


    <Button 
     android:id="@+id/exitChat" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.01" 
     android:background="@color/colorPrimaryAnonymose" 
     android:fontFamily="monospace" 
     android:text="leave chat" 
     tools:ignore="HardcodedText" /> 

    <RadioButton 
     android:id="@+id/statusBtn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="false" 
     android:checked="true" 
     android:backgroundTint="@color/colorPrimary" 
     android:layout_weight="0.01" 
     android:text="user " 
     tools:ignore="HardcodedText" /> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/reyclerview_message_list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="3.98" 
     android:background="?attr/colorPrimary" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:isScrollContainer="false" 
     app:layout_constraintTop_toTopOf="parent"></android.support.v7.widget.RecyclerView> 



    <LinearLayout 
     android:id="@+id/layout_chatbox" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.01" 
     android:background="#ffffff" 

     android:minHeight="48dp" 
     android:orientation="horizontal" 
     android:weightSum="3"> 

     <EditText 
      android:id="@+id/chatbox" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="2" 
      android:background="@android:color/transparent" 
      android:hint="write something.." 
      tools:ignore="HardcodedText,NestedWeights" /> 

     <Button 
      android:id="@+id/btn_send" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 

      android:background="@color/common_google_signin_btn_text_light_disabled" 
      android:clickable="true" 
      android:text="SEND" 
      android:textSize="14dp" 
      tools:ignore="HardcodedText,SpUsage" /> 
    </LinearLayout> 

</LinearLayout> 
    </RelativeLayout> 

在我Menifest文件:

  <activity 
      android:name=".ChatRoomActivity" 
      android:windowSoftInputMode="adjustResize" /> 

在我的活动

getWindow()setSoftInputMode(WindowManager.LayoutParams .SOFT_INPUT_ADJUST_RESIZE);

感谢您的帮助。


===========解决方案如下:

adjust_resize会导致您的rootview变小。在这种情况下,由于android:layout_weight="0.01",包含退出聊天按钮的LinearLayout变得非常小。
为了防止出现这种情况,您可能需要执行以下操作:
– 您的根布局应更改为android:layout_height="wrap_content"并将您的根布局放入ScrollLayout。
– 尽量避免android:layout_weight。如果可能,将所有项目放在RelativeLayout中。 RecyclerView可能是layout_above聊天出口持有者,layout_below发送按钮。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)