wjc
2023-06-16 4d4413f9542242ad6c99f8321aae4af910bd8e90
app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java
@@ -8,6 +8,7 @@
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
@@ -33,7 +34,6 @@
    private LoadingConfirmInputBinding viewBinding;
    private String titleStr, yesStr, noStr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -48,26 +48,34 @@
        initData();
        //初始化界面控件的事件
        initEvent();
        ///**/在界面中使用:
        //在界面中使用
        KeyboardStateObserverUtils.getKeyboardStateObserver((Activity) mContext).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
            @Override
            public void onKeyboardShow() {
                //Toast.makeText(MainActivity.this,"键盘弹出",Toast.LENGTH_SHORT).show();
            public void onKeyboardShow(int h) {
                ConstraintSet cs = new ConstraintSet();
                cs.connect(R.id.loading_confirmation_rl, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 40);//
                cs.clone(viewBinding.loadingParentCl);
//                (viewBinding.loadingConfirmationRl.getTop()-dip2px(h))
                cs.connect(R.id.loading_confirmation_rl, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, px2dip(h));//
                //应用约束
//                cs.applyTo(viewBinding.contentBaseView);
//                viewBinding.agreementLl.setVisibility(View.GONE);
                cs.applyTo(viewBinding.loadingParentCl);
//                FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) viewBinding.loadingParentCl.getLayoutParams();
//                lp.bottomMargin = px2dip(h);
//                viewBinding.loadingParentCl.setLayoutParams(lp);
            }
            @Override
            public void onKeyboardHide() {
                //Toast.makeText(MainActivity.this,"键盘收回",Toast.LENGTH_SHORT).show();
            public void onKeyboardHide(int h) {
                ConstraintSet cs = new ConstraintSet();
                cs.connect(R.id.loading_confirmation_rl, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 40);//
                cs.clone(viewBinding.loadingParentCl);
                cs.connect(R.id.loading_confirmation_rl, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, px2dip(h));//
                //应用约束
                cs.applyTo(viewBinding.loadingParentCl);
            }
        });
@@ -85,6 +93,9 @@
            return;
        }
        titleStr = title;
        if (viewBinding != null) {
            viewBinding.loadingConfirmationTitleTv.setText(titleStr);
        }
    }
@@ -98,6 +109,10 @@
            return;
        }
        yesStr = confirm;
        if (viewBinding != null) {
            viewBinding.dialogConfirmTv.setText(yesStr);
        }
    }
@@ -113,6 +128,9 @@
        }
        noStr = cancel;
        if (viewBinding != null) {
            viewBinding.dialogCancelTv.setText(noStr);
        }
    }
@@ -158,6 +176,9 @@
     * 初始化界面控件的显示数据
     */
    private void initData() {
        if (viewBinding == null) {
            return;
        }
        //如果用户自定了title和message
        if (!TextUtils.isEmpty(titleStr)) {
            viewBinding.loadingConfirmationTitleTv.setText(titleStr);
@@ -209,4 +230,23 @@
        void Confirm(String str);
    }
    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    private int dip2px(float dpValue) {
        if (mContext == null) {
            return 0;
        }
        final float scale = mContext.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }
    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    private int px2dip(float pxValue) {
        final float scale = mContext.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
}