diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e931b82..7f2abe8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,7 @@ () { bindUi(R.layout.activity_chat) ImmersionBar.with(this).statusBarDarkFont(true) .hideBar(BarHide.FLAG_HIDE_NAVIGATION_BAR).init() + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) } override fun initView(savedInstanceState: Bundle?) { @@ -188,8 +191,34 @@ class ChatActivity : BaseActivity() { } binding.tags.adapter = adapter1 binding.tags2.adapter = adapter1 - binding.tags.linearLayoutManagerForHorizontal(mContext,0) - binding.tags2.linearLayoutManagerForHorizontal(mContext,0) + binding.tags.linearLayoutManagerForHorizontal(mContext, 0) + binding.tags2.linearLayoutManagerForHorizontal(mContext, 0) + +// binding.text.onFocusChangeListener = +// OnFocusChangeListener { _, hasFocus -> +// if (hasFocus) { +// window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) +// } +// } + + window.decorView.viewTreeObserver.addOnGlobalLayoutListener { + val r = Rect() + window.decorView.getWindowVisibleDisplayFrame(r); + val screenHeight = window.decorView.rootView.height; + val keypadHeight = screenHeight - r.bottom; + + if (keypadHeight > screenHeight * 0.15) { + // 输入法弹出 + val params = binding.bto.layoutParams as LinearLayout.LayoutParams + params.height = keypadHeight; + binding.bto.layoutParams = params + } else { + // 输入法隐藏 + val params = binding.bto.layoutParams as LinearLayout.LayoutParams + params.height = 0; + binding.bto.layoutParams = params + } + } } private fun changeView() { @@ -203,7 +232,7 @@ class ChatActivity : BaseActivity() { binding.empty.gone() } putInt(MSG_COUNT + "_" + toUser?.userId, 0)//消息全部已读 - if (intent?.getBooleanExtra("isSys", false) == true){ + if (intent?.getBooleanExtra("isSys", false) == true) { binding.empty.gone() binding.startVideo2.gone() binding.msgStartVideo.gone() @@ -253,12 +282,12 @@ class ChatActivity : BaseActivity() { binding.country.text = CountryHelper.getCountryName(toUser?.country) ImageHelper.load(binding.gender, GenderHelper.getImage(toUser?.gender ?: 1)) - ImageHelper.load(binding.avatar,toUser?.avatar) - ImageHelper.load(binding.avatar3,toUser?.avatar) - val color = when(toUser?.online){ - 0 -> Color.parseColor("#FFB9BECC") - 1 -> Color.parseColor("#FF26D526") - else -> Color.parseColor("#FFEA2D2D") + ImageHelper.load(binding.avatar, toUser?.avatar) + ImageHelper.load(binding.avatar3, toUser?.avatar) + val color = when (toUser?.online) { + 0 -> Color.parseColor("#FFB9BECC") + 1 -> Color.parseColor("#FF26D526") + else -> Color.parseColor("#FFEA2D2D") } diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index 8db6f2f..1d473f7 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -2,7 +2,8 @@ - @@ -71,9 +72,9 @@ + android:layout_height="0dp" + android:layout_weight="1" + android:visibility="gone"> + android:visibility="visible"> - - - - - - + + + + android:paddingVertical="16dp"> @@ -306,7 +314,6 @@ android:id="@+id/can_send" android:layout_width="32dp" android:layout_height="32dp" - android:layout_marginVertical="10dp" android:src="@mipmap/can_send" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/view_send" @@ -314,24 +321,11 @@ app:layout_constraintTop_toTopOf="parent" /> - - + android:layout_height="0dp"/> - - - + \ No newline at end of file