在fragment中edittext被键盘顶上去之后,输入框的下面外边距被遮挡住了
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="65dp"
        android:background="@color/color_23ce66"
        android:gravity="center"
        android:paddingTop="20dp"
        android:text="健康服务"
        android:textColor="@color/color_ff"
        android:textSize="18sp" />

    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:id="@+id/rv"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingVertical="10dp">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="35dp"
            android:layout_marginHorizontal="15dp"
            android:layout_weight="1"
            android:background="@drawable/rectangle_stroke_ec_17dp"
            android:hint="回复"
            android:id="@+id/et_send"
            android:paddingHorizontal="10dp"
            android:textColor="@color/color_33"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/tv_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:background="@drawable/rectangle_solid_23ce66_17dp"
            android:paddingHorizontal="25dp"
            android:paddingVertical="5dp"
            android:text="发送"
            android:textColor="@color/color_ff" />
    </LinearLayout>

</LinearLayout>

图片说明
图片说明
就是这么个意思,有没有大牛知道怎么做,让输入框的部分显示完整

//==================分割=======================//
2019年1月3日,解决方案记录

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

    <LinearLayout
        android:id="@+id/ll_content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="65dp"
            android:background="@color/color_23ce66"
            android:gravity="center"
            android:paddingTop="20dp"
            android:text="健康服务"
            android:textColor="@color/color_ff"
            android:textSize="18sp" />

        <com.jcodecraeer.xrecyclerview.XRecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingVertical="10dp">

        <EditText
            android:id="@+id/et_send"
            android:layout_width="match_parent"
            android:layout_height="35dp"
            android:layout_marginHorizontal="15dp"
            android:layout_weight="1"
            android:background="@drawable/rectangle_stroke_ec_17dp"
            android:hint="回复"
            android:paddingHorizontal="10dp"
            android:textColor="@color/color_33"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/tv_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:background="@drawable/rectangle_solid_23ce66_17dp"
            android:paddingHorizontal="25dp"
            android:paddingVertical="5dp"
            android:text="发送"
            android:textColor="@color/color_ff" />
    </LinearLayout>

    <View
        android:id="@+id/v"
        android:layout_width="0dp"
        android:layout_height="0dp" />
</LinearLayout>
 etSend.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect r = new Rect();
                //获取当前界面可视部分
                ((Main2Activity) getActivity()).getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
                //获取屏幕的高度
                int screenHeight = ((Main2Activity) getActivity()).getWindow().getDecorView().getRootView().getHeight();
                //此处就是用来获取键盘的高度的, 在键盘没有弹出的时候 此高度为0 键盘弹出的时候为一个正数
                int heightDifference = screenHeight - r.bottom;

                lockContentHeight();
                unlockContentHeightDelayed(heightDifference);


            }
        });


   /**
     * 锁定内容高度,防止跳闪
     */
    private void lockContentHeight() {
        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) llContent.getLayoutParams();
        params.height = llContent.getHeight();
        params.weight = 0.0F;
    }


    /**
     * 释放被锁定的内容高度
     */
    public void unlockContentHeightDelayed(final int heightDifference) {
        etSend.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (llContent == null) {
                    return;
                }
                ((LinearLayout.LayoutParams) llContent.getLayoutParams()).weight = 1.0F;
                ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
                layoutParams.height = heightDifference - SizeUtils.dp2px(55);
                v.setLayoutParams(layoutParams);
            }
        }, 10L);
    }

0

2个回答

一般的做法是写一个跟键盘登高的view。
https://github.com/Jacksgong/JKeyboardPanelSwitch
github上有一些解决方案,不过原理也是一样的,监控键盘弹出,等高view可见。

0

或许可以试一试这个
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

0
weixin_36540306
weixin_36540306 这个没用的,我的布局时在fragment中的,如果把fragment所在的activity设置了这种模式,输入框直接被键盘覆盖,顶不上来的
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android——Fragment中键盘遮挡问题的解决方案
在Mainfest中设置Activity的windowSoftInputMode属性,主要有以下几种: n【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 n【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 n【C】stateHidden:用户选择activ
EditText弹出软键盘遮住输入框问题
如果在Activity中的布局的下方有EditText,获取焦点弹出软键盘的时候,如果不做处理,软键盘可能会遮挡输入框,用户提现不好,网上也有很多人提出结局方案,这里就分析一下解决的效果.rn需要用到EditText的布局大概分为两种,一种是页面显示的内容不希望有残缺,比如软键盘把标题挤出了屏幕,如登录注册搜索等,EditText多半在页面上半部分.另一种是页面的上半部分不重要,比如聊天窗口,软键
使用fragment,editvView ,listView,出现软键盘遮挡
情况是这样的rnactivity第一个界面:FragmentA  有一个 listview (scrollerView) ,FeagmentB有一个EditView,没有listview rnrnrn我并没有设置android:windowSoftInputMode 这个TAG,也就是说它是默认的stateUnspecifiedrnrnrn现象:我通过FragmentA 切换到FeagmentB,
解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题
解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题
EditText被键盘遮住的问题
发现这个问题后从网上找了找,rn1)说是在AdnroidMainfest.xml中对应的activtiy 设置属性android:windowSoftInputMode=”stateVisible|adjustPan”试了一下不行,rn2)后来在layout中用...
弹出键盘遮挡一半Edittext
去掉Edittext的固定高度,改为wrap_content,然后使用padding值即可
android 界面底部多行edittext框 弹出软键盘遮盖问题
最近遇到一个问题,在底部用到edittext 而且是多行,在弹出软键盘的时候会出现遮盖问题,网上有很多方法解决,什么把view外层设置scrollview还有在 xml文件中rnandroid:windowSoftInputMode="adjustResize" 但是都只能满足edittext是一行的问题,其他几行还是会被遮盖,而且我下面还有一个button也被遮盖了,rn rn我的解决方案是:外
android 关于软键盘遮挡webView底部输入框问题(解决方案)
n软键盘挡住了输入框这个坑 填坑方法:来吧,小伙伴们  keyboarder,多亏我的名字了nnn为什么说它是个坑?&quot;issue 5497&quot;nn上面表格的这种情况并非是Google所期望的,理想的情况当然是它们都能正常生效才对——所以这其实是Android系统本身的一个BUG。nnnn为什么文章开头说这是个坑呢?n——因为这个BUG从Android1.x时代(2009年)就被报告了,而一...
Dialog中输入法弹出被遮挡的相关问题
Android QQ交流群:813273942nnnn如果界面是activity或者fragment,那么直接可以再清单文件中或者包含fragment的activity中设置nnnandroid:windowSoftInputMode=&quot;adjustPan&quot;nnn具体方案就不再详细说了,网上一大堆;nn在dialog中如何做呢?nndialog中需要设置styles,也就是在里面添加即可;nn在...
解决EditText被软盘遮挡和键盘弹出布局不上移
一开始我遇到过这个也在网上找了很多例子,都是在说在AndroidManifest文件对应activity中加上nnandroid:windowSoftInputMode=”stateVisible|adjustPan”这属性就可以了,但是这个会有包含一个问题那就是布局会上移,那么如果你的顶上布局是一个视屏播放键或者其他的,那么就会看不见,导致用户体验度不好。如果不设置这个属性的话,那么就会出现你的...
android利用DialogFragment解决软件盘弹出遮挡底部编辑框的解放方案
在onCreateDialog重写方法中加入对diaologwindow的软键盘弹出模式:nnn//获取当前Activity所在的窗体nWindow dialogWindow = dialog.getWindow();n//设置软键盘弹出模式ndialogWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN...
BottomSheetDialog 中edit被键盘部分遮挡
问题: 在dialog中存在一个editText,当键盘出现后,键盘会覆盖焦点以下的dialog nn解决思路:ajustResize会重新布局当前窗口,且需要当前dialog不是浮动的。nn解决方案:为创建的bottomSheetDialog设置自定style,代码如下nn&amp;lt;style name=&quot;BottomSheetEdit&quot; parent=&quot;Theme.Design.Light.Bo...
解决popupwindow中有输入框的时候,弹出软键盘遮挡布局的问题
在设置popupwindow中要添加上如下代码,注意,顺序不能变rnpopupwindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);rnpopupwindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);rnrn这样就能解决了键盘遮挡popup
【Android】EditText 遇到软键盘遮挡底部一点的问题
1.问题描述:n   项目中某个布局文件(布局相当复杂)添加EditText输入框,在清单文件对应activity中设置属性   android:windowSoftInputMode=&quot;adjustResize&quot;  ,弹出软件盘不存在遮盖问题。但是一旦给这个EditText设置背景之后就会出现EditText底部被遮盖的情况。如下图:nnn目前还没有找到原因。但是自己写demo时就不会出
华为系统BottomSheetDialog或DialogFragment底部弹出,Edittext键盘部分遮盖
华为系统BottomSheetDialog或DialogFragment底部弹出,Edittext键盘部分遮盖nnn键盘底部遮盖现象nnnnnnnnn以BottomSheetDialog为例nnn查看BottomSheetDialog.java源码使用的是 nTheme.Design.Light.BottomSheetDialog这个themenstyle.xml中继承Theme.Design.L...
Android RecyclerView内容被键盘遮挡问题
做过IM界面开发者可能会遇到,当输入框获取焦点recyclerview的内容会被键盘遮挡,无法像微信一样将列表消息定位到最后一个,严重影响用户体验,现在将我遇到的问题和解决方案记录下来:rnrn一.在搜索一些资料时,出现以下的解决方案,缺陷我记录下来rnrn在AndroidManifest的Activity中设置软键盘属性rnrnrnandroid:windowSoftInputMode="adj
输入法遮挡EditText输入框的问题
以前项目都是通过扫描二维码登录的,现在有需求要改成用户名密码登录,在修改以后,当在输入密码的时候,弹出的输入框遮挡住了EditText的输入框,体验很差,这里几率下解决办法:n一:在清单文件中对应的Activity便签下添加如下配置nandroid:windowSoftInputMode=&quot;stateVisible|adjustResize&quot;n二:在对应的Activity代码中添加如下代码nget...
安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(一)
这几天做项目的时候发现了一个问题,就是在做登录界面的时候,在点击密码输入框输入密码的时候,总是会出现这种情况:n首先是最开始的界面:nnn然后我点击密码输入框的时候,软键盘弹出的界面是这样的额,遮挡住了部分输入框:n这显然不是我们想要的效果,我想要的是将密码输入框以上的控件都上移,不被覆盖,需求知道了,现在就是怎么解决了,首先不管是问的群里的一些人,他们说在Mainfest清单文件里面的
RecyclerView实现对话框时键盘遮住对话内容问题.md
问题描述n在使用RecyclerView实现仿微信对话功能时,出现点击Edittext弹出键盘遮住对话内容的问题。n解决办法n在清单文件中设置android:windowSoftInputMode="adjustResize|stateHidden"或者设置android:windowSoftInputMode="adjustPan|stateHidden"n设置mLayoutManager.set
android 使用PopupWindow弹窗时,挡住了软键盘
最近项目有做类似微信转发的功能,转发界面搜索,就想到用PopupWindow 来做比较方便,做完UI以后发现软键盘居然PopupWindow挡住了,然后上网查了下,发现都是说用rnrnrnrnpopupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);rnrnpopupWindow.setSoftInputMode(WindowMan
解决android软键盘弹出有时会遮住EditText输入框的一种方法
解决该问题的思路:当软键盘弹出时,让当前Activity的最外层布局向上移动一定的距离,让输入框处于可视范围内。nn方法:nnprivate void addLayoutListener(final View main, final View scroll) {n main.getViewTreeObserver().addOnGlobalLayoutListener(new
EditText被遮挡底部问题
遇到EditText被软件盘遮挡底部一部分的问题,能显示文字但是EditText被遮挡了一部分,解决方式记录下 n1、EditText高度改成wrap_content,利用padding扩展EditText高度 n2、利用windowSoftInputMode配合ScrollView解决 n3、自定义EditText layerlist布局解决 n4、监听View的高度变化,改变布局...
android弹出软键盘时,editText被遮挡的问题
n &amp;lt;activity android:name=&quot;.ui.activity.HomeStockGameRankActivity&quot;n android:windowSoftInputMode=&quot;stateAlwaysHidden|adjustResize&quot; /&amp;gt;nn这是一个正常的activity的属性配置,大家都懂这个的意思。这个问题的错误处在xml布局文件上,只因...
BottomSheetDialogFragment里面软件盘弹出来把下面遮挡了一部分的问题
n方法1:设置layer-list  EditText的背景如下   测试了可以达到效果  可能没设置好 看的过去 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;n&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; &amp;gt;nn &amp;lt;item&amp;gt;n..
解决EditText 被部分遮挡的问题
1.首先在布局文件最外层加scrollviewrn2.代码中使用如下方法rnrnprivate void controlKeyboardLayout(final ScrollView root, final Activity context) {n root.getViewTreeObserver().addOnGlobalLayoutListener(() -> {n Rec
listview内嵌套edittext,软键盘遮住问题
我现在在listview里嵌套edittext,该布局的activity里的android:windowSoftInputMode="adjustPan" ,加载超过屏幕长度的数据,点击屏幕下方的item,软键盘弹出,所要编辑的item在软键盘上,如果你点击软键盘上的“隐藏”按钮(即隐藏键盘,按钮一般在软键盘右上角),软键盘隐藏,再次点击原来的item,软件将遮住该item,点击其他item没事。
Fragment中弹出软键盘会把底部菜单栏顶上去
在AndroidManifest(配置文件相应的antivity中加入):nnnandroid:windowSoftInputMode=&quot;adjustPan&quot;nn比如:nnn&amp;lt;activity android:name=&quot;.activity.MainActivityMain&quot;n android:windowSoftInputMode=&quot;adjustPan&quot;/&amp;gt;nn nn更多好内容...
Android中EditText被输入法软键盘遮挡的完美解决方案(非全屏模式下)
1、不要给EditText的背景设置为@null 清单文件中为activity设置属性 代码中设置显示输入法nnn android:windowSoftInputMode=”stateVisible|adjustResize”nnn/**n * 展示输入法输入框n */npublic void showKeyBoard() {n getWindow().setSoftInputMode(W...
解决安卓软键盘遮挡和顶部title被顶上去问题
1、工具类KeyBoardPatch 下载nn2、使用方法nn2-1、任意新建一个Activity,在AndroidMainifest配置android:windowSoftInputMode="stateHidden|adjustPan"nn2-2、Activity布局文件中,最外层控件设置id。 android:id="@+id/content"nn2-3、Activity的onCrea...
Android Fragment 中自定义键盘如何调整布局,不挡住界面控件
如题,Android Fragment 中自定义键盘如何调整布局,不挡住界面控件????这个问题从项目开始做自定义的键盘就遇到了这个问题,我们的界面切换管理用的都是fragment,所以也就不能使用像网上说的在主配置文件AndroidManifest.xml的activity设置一个键盘弹出自动调整的属性,在fragment界面中,这完全没起作用,还有就是view的scrollBy方法,因为用的是
关于软键盘弹出遮盖Dialog的问题
要实现软键盘弹出,dialog自动上升的功能,界面如下nn分两步。nn第一:我们知道,在activity中有个属性是可以设置当软键盘弹出时,让界面上移的属性。dialog一个,只不过是写个style。nnn&amp;lt;style name=&quot;dialog_soft_input&quot; parent=&quot;Theme.AppCompat.Light.Dialog.Alert&quot;&amp;gt;n &amp;lt;item n...
诡异的Android开发中EditText键盘弹出后被遮盖的bug
今天遇到一个诡异的问题,就是Activity里面有个EditText,键盘第一次弹出时可以正常输入,当第二次调起键盘时,这个EditText就被遮盖了。n无论我在ActivityMainfest里面如何设置windowSoftInputMode的属性,完全不起作用。n此时我只能一个属性一个属性的试验,最后发现,是在EditText中加了这个属性android:gravity="center_h
android 底部Dialog里面的EditText点击软键盘顶起Dialog
最近项目需求要求做一个底部弹窗大概屏幕的1/3,上面有一个EditText,点击之后Dialog被这个输入法挡住,现在要求Dialog随之软键盘被顶起。代码如下:nnDialog:nnn final View view = LayoutInflater.from(this).inflate(R.layout.dialog, null);n mDialog = new Dialog(t...
解决了1天的bug,关于editText+ListView弹出键盘后,把Toolbar顶上去,并且布局上不去.
使用了项目中的一句话,nnnAndroidBug5497Workaround.assistActivity(this);
Android编辑框被输入法遮盖,有效的处理办法
出现这个问题, 主要是在4.4之后, 允许使用沉浸式标题栏后, 4.4之前的 或 4.4之后没有使用沉浸式标题栏的 都没问题, 所以, 如果 你的app使用沉浸式标题栏, 并且 需要输入内容, 就可以用这个办法n1.在xml中主体部分的外面加一层ScrollView,就是图中红线圈中的地方n2. 在activity的onCreate中 加入这段代码nnif (Build.VERSION.S
Toolbar 被顶解决办法
1.在界面的根布局添加上 android:fitsSystemWindows=”true” n2.如果xml 设置了android:windowSoftInputMode 则去掉 n 以上记录接入环信聊天遇到,安装环境为平板 不是手机,系统不同仅供参考...
解决 android 输入法弹出输入框被遮挡的问题
由于本人懒,也从不写博客,之所以写是因为这次开发 ’又遇到‘ 输入法这个问题了,好久以前有遇到过,突然发现还是很有必要把他分享出来,言归正传,下面就把解决的几种方法贴上。n1,首先看效果图:nnnnnnn2,实现效果图:nnnnnnn解决方法一:n在 AndroidManifest.xml 文件中的activity里加入 android:windowSoftInpu
android 沉浸式引起的edittext软键盘遮挡问题
一次探索沉浸式的主题edittext软键盘弹起遮挡的问题,分两种情况nn1.非透明状态栏下使用adjustResize和adjustPannn主要实现方法: n在AndroidManifest.xml对应的Activity里添加 nandroid:windowSoftInputMode的属性 n nnactivity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的...
ScrollView中有editText,点击输入的时候,被键盘遮挡。怎么解决?
在Mainfest中,当前acvitity中设置属性 nandroid:exported=”false” nandroid:launchMode=”singleInstance” nandroid:screenOrientation=”portrait” nandroid:windowSoftInputMode=”adjustPan”...
[Android]键盘弹出时输入框被遮盖的对策和注意点
Activity避免输入框被遮盖跟这个属性的设定有关。nandroid:windowSoftInputModennn下面是是这个属性的意义。(转载csdn)nnn各值的含义:nn【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置nn【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 被nlp课程洗脑 区块链培训被坑