安卓监听软键盘弹起关闭动态控制布局组件显示于隐藏,汉字写的教程,一看就懂~!

在网上搜索了这么多关于软键盘的监听,要么就没有效果!要么就是写教程的人太牛逼了!英语用的那个流畅啊~!对于菜鸟来说根本就看不懂!一气之下!我也来一篇教程~!!!咱用汉字来写~!教程嘛!你弄那么多英语~!谁知道是必须要求的代码格式~!还是自定义的!!!!!


1.在要控制的xml里面 最外层布局加行  id

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

    android:id="@+id/最底层的布局"  

    tools:context="com.xxxxxxxxx.MainActivity"//换成自己的
    android:weightSum="1">


   
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="tttttt"
android:id="@+id/用于控制显示和隐藏的按键"/>
</FrameLayout>

 2.在控制的java布局   如//MainActivity.java里面 

package com.xxxx;//换成你自己的  不要复制
import android.view.ViewTreeObserver;   加上它   





public class MainActivity extends AppCompatActivity {
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        aaaaaaaaaaaaaaaaaaa();  //  自定义 放到下面  显得不乱

    }

    private void aaaaaaaaaaaaaaaaaaa() {
        final View 最底层的布局 = findViewById(R.id.最低层的布局);    //获取底层布局
        final View 用于控制显示和隐藏的按键 = findViewById(R.id.用于控制显示和隐藏的按键);   //获取要控制的组件
        
        最底层的布局.getViewTreeObserver().addOnGlobalLayoutListener(                       
new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() {

         int heightDiff = 最底层的布局.getRootView().getHeight() - 最底层的布局.getHeight();  //运算判断
                if (heightDiff > 100) { 
                    键盘开启();                 //用汉字也可以  不过安全起见还是换成字母吧          

                    } else {
                    键盘关闭();
                   
                    }
            }

                    private void 键盘开启() {
                        用于控制显示和隐藏的按键.setVisibility(View.GONE);//软键盘开启  关闭  GONE  关闭后不占用空间

                        Toast.makeText(MainActivity.this, "44444444444软键盘开启----关闭按键显示44444444", Toast.LENGTH_SHORT).show();//提示可以不加  实验用的
                    }

                    private void 键盘关闭() {
                        用于控制显示和隐藏的按键.setVisibility(View.VISIBLE);//软键盘关闭  显示  VISIBLE  用于关闭后的复位
                        Toast.makeText(MainActivity.this, "333333软键盘关闭---开启按键显示33333", Toast.LENGTH_SHORT).show();//提示用的  可以不加


                    }
                });
    }

很乱,但是一定能看懂~! 看不懂也没关系 ~!你只要能用就行了~!复制保存下来,用的时候直接改改就是了~!

我也是菜鸟~!网上教程看不懂~!所以写了它~!希望对你有帮助~!还有几个方法,明明很简单就能实现的功能~!

非得弄得那么复杂~!而且写教程的人喜欢用英语~~!明明拼音就可以解决的事情~!非得用鹰语来显示自己的高大上~!


  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

qq_28066623

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值