TP-00000 | Fixed Input Keyboard Flickering Issue (#201)

This commit is contained in:
Sanjay P
2023-09-30 12:27:10 +05:30
committed by GitHub
parent 4915434162
commit f8a5665ffa
8 changed files with 93 additions and 9 deletions

View File

@@ -22,7 +22,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
@@ -44,7 +46,9 @@ import com.uitron.demo.theme.fontFamily
fun Toolbar(viewModel: DazzleViewModel) {
val keyboardController = LocalSoftwareKeyboardController.current
val context = LocalContext.current
val view = LocalView.current
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
@@ -74,7 +78,11 @@ fun Toolbar(viewModel: DazzleViewModel) {
),
keyboardActions = KeyboardActions(onSearch = {
viewModel.applySearchOrFilter()
keyboardController?.hide()
KeyboardUtil.hideKeyboard(
context = context,
view = view,
keyBoardController = keyboardController
)
}),
modifier = Modifier
.height(48.dp)
@@ -97,7 +105,11 @@ fun Toolbar(viewModel: DazzleViewModel) {
})
Button(
onClick = {
keyboardController?.hide()
KeyboardUtil.hideKeyboard(
context = context,
view = view,
keyBoardController = keyboardController
)
viewModel.showBottomSheet(BottomSheetType.FilterBottomSheet) },
shape = RoundedCornerShape(4.dp),
colors = ButtonDefaults.buttonColors(

View File

@@ -1,5 +1,6 @@
package com.uitron.demo.dazzledesignsystem.ui
import KeyboardUtil
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
@@ -18,7 +19,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
@@ -41,6 +44,8 @@ import com.uitron.demo.theme.fontFamily
fun WidgetItemView(widgetTemplate: WidgetTemplate?, viewModel: DazzleViewModel) {
val keyboardController = LocalSoftwareKeyboardController.current
val context = LocalContext.current
val view = LocalView.current
val widgetData = widgetTemplate?.config?.widgetData?.let {
try {
@@ -79,7 +84,11 @@ fun WidgetItemView(widgetTemplate: WidgetTemplate?, viewModel: DazzleViewModel)
modifier = Modifier
.padding(top = 10.dp, end = 12.dp)
.clickable {
keyboardController?.hide()
KeyboardUtil.hideKeyboard(
context = context,
view = view,
keyBoardController = keyboardController
)
viewModel.showBottomSheet(
BottomSheetType.ShareWidgetConfigBottomSheet, widgetTemplate
)

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.platform.ClipboardManager
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.TextStyle
@@ -75,6 +76,8 @@ fun SearchField(
modifier: Modifier, viewModel: DesignSystemVM
) {
val keyboardController = LocalSoftwareKeyboardController.current
val context = LocalContext.current
val view = LocalView.current
Row(
verticalAlignment = Alignment.CenterVertically, modifier = modifier
@@ -108,7 +111,13 @@ fun SearchField(
keyboardOptions = KeyboardOptions(
autoCorrect = false, imeAction = ImeAction.Search
),
keyboardActions = KeyboardActions(onSearch = { keyboardController?.hide() }),
keyboardActions = KeyboardActions(onSearch = {
KeyboardUtil.hideKeyboard(
context = context,
view = view,
keyBoardController = keyboardController
)
}),
modifier = Modifier
.fillMaxWidth()
.background(color = Color.Transparent),