Android-当软键盘弹出(使用adjustResize)时如何重新缩放所有内容,但保持背景的大小不变?
创始人
2024-08-19 17:00:39
0
  1. 在AndroidManifest.xml文件中的activity元素中添加属性 android:windowSoftInputMode="adjustResize",用以自动调整布局以适应软键盘的弹出和隐藏。
  2. 使用一个RelativeLayout布局容器,以便能够通过布局参数(LayoutParams)来动态调整布局。
  3. 在onCreate函数中获取布局的根视图(rootView),即RelativeLayout(或任何其他布局容器),并设置一个监听器来监测软键盘的状态。
  4. 在软键盘弹出时,使用LayoutParams来调整布局,以便将所有内容进行缩放,但是保持背景的大小不变。

代码示例:

public class MainActivity extends AppCompatActivity implements ViewTreeObserver.OnGlobalLayoutListener {

    private View rootView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        rootView = findViewById(R.id.rootView);

        // 监听视图树的变化
        rootView.getViewTreeObserver().addOnGlobalLayoutListener(this);
    }

    @Override
    public void onGlobalLayout() {
        Rect r = new Rect();
        rootView.getWindowVisibleDisplayFrame(r);

        int screenHeight = rootView.getRootView().getHeight();
        int keypadHeight = screenHeight - r.bottom;

        if (keypadHeight > screenHeight * 0.15) {
            // 软键盘弹出时,调整布局
            ViewGroup.LayoutParams params = rootView.getLayoutParams();
            params.height = (int) (screenHeight - keypadHeight * 1.5);
            rootView.setLayoutParams(params);
        } else {
            // 软键盘关闭时,布局恢复原样
            ViewGroup.LayoutParams params = rootView.getLayoutParams();
            params.height = ViewGroup.LayoutParams.MATCH_PARENT;
            rootView.setLayoutParams(params);
        }
    }
}

相关内容

热门资讯

重大通报!wepoker高级辅... 重大通报!wepoker高级辅助,德普之星辅助软件,玩家教程(有挂辅助)准备好在德普之星辅助软件ia...
玩家必看科普!wepoker正... 《玩家必看科普!wepoker正确养号方法,德州透视是真的吗,解密教程(有挂透明)》 wepoker...
每日必备!智星德州可以透视吗,... 每日必备!智星德州可以透视吗,sohoo poker辅助器,德州论坛(有挂技巧);智星德州可以透视吗...
最新技巧!hhpoker辅助软... 最新技巧!hhpoker辅助软件下载,hhpoker俱乐部是干嘛的,详细教程(有挂神器)1、许多玩家...
一分钟了解!we-poker辅... 1、一分钟了解!we-poker辅助器,pokerworld软件,解密教程(有挂攻略)。2、we-p...
一分钟了解!wpk刷入池率脚本... 一分钟了解!wpk刷入池率脚本,大菠萝辅助器,AA德州教程(有挂教程);大神普及一款德州ai内幕,确...
分享实测!来玩app 德州 辅... 分享实测!来玩app 德州 辅助,hh poker软件,大神讲解(有挂方法);1分钟了解详细教程(微...
交流学习经验!aapoker脚... 交流学习经验!aapoker脚本怎么用,wepoker辅助透视软件,攻略教程(有挂神器)关于wepo...
最新通报!wepoker辅助器... 最新通报!wepoker辅助器安装包,wepoker辅助器,玩家教你(有挂技巧);大神普及一款德州a...
揭秘!德州辅助工具到底怎么样,... 揭秘!德州辅助工具到底怎么样,wepoker私人局透视方法,安装教程(有挂教程);人气非常高,ai更...