jetpack compose TextField 组件在手持 PAD 设备无法触发回车事件

查看 31|回复 1
作者:ssccyy   
安卓小白一个,最近因为公司需求接了一个手持 PDA 的项目(就是仓库扫码的机器,类似快递小哥扫码的机器)
页面输入框组件是使用的 TextField
出现的问题:我理解手持 PDA 设备扫码就是相当于外接一个键盘输入数字+一个回车的操作,我 PC 使用模拟器安装安卓项目,然后使用键盘加回车是可以触发回车事件的, 安装项目到手持 PDA 设备里面的效果是我输入了一段文字,然后触发的是选中文字的操作, 并不是回车的事件(我知道这里我描述的比较模糊,表达不太强, 不知道怎么具体的形容,虚心请教勿喷)
                        TextField(
                            value = productViewModel.zhCode,
                            onValueChange = { productViewModel.zhCode = it },
                            modifier = Modifier
                                .weight(1f)
                                .border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
                                .padding(4.dp),
                            keyboardOptions = KeyboardOptions.Default.copy(
                                imeAction = ImeAction.Done // 设置回车动作为“完成”
                            ),
                            keyboardActions = KeyboardActions(
                                onDone = {
                                    // 执行回车动作时的操作
                                    keyboardController?.hide() // 隐藏键盘
                                    productViewModel.zhEnter() // 触发回调函数
                                }
                            ),
                            )
求大佬指点迷津。。。
ssccyy
OP
  
手持 PDA 设备:iData 95S
手持 PDA 设备系统: 安卓 6.0
项目 build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.plugin.parcelize'
}
android {
compileSdk 34
defaultConfig {
applicationId "icu.bughub.app.app"
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
pickFirst '**/libc++_shared.so'
doNotStrip "*/arm64-v8a/libYTCommon.so"
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
def lifecycle_version = "2.4.1"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
implementation 'androidx.activity:activity-compose:1.4.0'
//accompanist
def accompanist_version = "0.24.3-alpha"
implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version"
implementation "com.google.accompanist:accompanist-insets:$accompanist_version"
implementation "com.google.accompanist:accompanist-pager:$accompanist_version"
implementation "com.google.accompanist:accompanist-navigation-animation:$accompanist_version"
implementation "com.google.accompanist:accompanist-placeholder-material:$accompanist_version"
implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version"
//图标扩展
implementation "androidx.compose.material:material-icons-extended:$compose_version"
implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0"
//图片加载
implementation("io.coil-kt:coil-compose:2.0.0-rc01")
//webview
implementation project(path: ':webview')
//播放器
implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release'
//datastore
implementation "androidx.datastore:datastore-preferences:1.0.0"
def retrofit = "2.9.0"
//网络请求框架
implementation "com.squareup.retrofit2:retrofit:$retrofit"
//GSON
// implementation "com.squareup.retrofit2:converter-gson:$retrofit"
//moshi
implementation "com.squareup.retrofit2:converter-moshi:$retrofit"
def moshi_version = "1.13.0"
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
}
会不会是我需要开什么原型的权限或者是什么行为。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部