如何解决当我点击 EditText 时,它会立即失去焦点用于可视化的短视频
这是弹出的 customLayout 类
class PopYoutubeUrlInput(context: Context,attrs: AttributeSet):
androidx.constraintlayout.widget.ConstraintLayout(context,attrs) {
val b = PopYoutubeBinding.inflate(LayoutInflater.from(context),this,true)
val linkInput = b.youtubeLinkInput
val saveButton = b.linkSubmitButton
val titleInput = b.title
val youtubeInputConst = b.youtubeInputConst
val viewList = listOf(titleInput,youtubeInputConst,linkInput,saveButton)
fun show() {
Slider.slideUp(viewList)
titleInput.requestFocus()
clickListener()
}
fun clickListener() {
saveButton.setOnClickListener {
Slider.slideDown(listOf(this))
val youTubeVideo = createMediaInstance(
iTitle = titleInput.text.toString(),iYoutubeLink = linkInput.text.toString())
FirestoreUtil.uploadVideo(youTubeVideo) {docRef ->
val myMedia = MyMedia(firestoreDocId = docRef.id)
d.scope.launch {
d.ao.myMedia.insert(myMedia)
}
Toast.makeText(context,"Youtube video shared",Toast.LENGTH_SHORT).show()
}
}
}
}
对应的xml文件
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/youtubeInputConst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#C7CACC"
android:visibility="invisible">
<EditText
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginBottom="4dp"
android:gravity="center"
android:hint="Title"
android:singleLine="true"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@id/youtubeLinkInput"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/youtubeLinkInput"
android:layout_width="200dp"
android:layout_height="45dp"
android:hint="Youtube URL"
android:singleLine="true"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/linkSubmitButton"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="submit"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/youtubeLinkInput"
app:layout_constraintTop_toBottomOf="@+id/title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
并且“弹出窗口”在此布局内
><?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/liveMasterPop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ffffff">
<ImageView
android:id="@+id/outsidePop"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/truetransparent" />
<com.example.dnaire.pops.PopSeconds
android:id="@+id/popSeconds"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="100dp"
android:layout_marginBottom="50dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<com.example.dnaire.pops.PopYoutubeUrlInput
android:id="@+id/popYoutube"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="100dp"
android:layout_marginBottom="100dp"
app:layout_constraintBottom_toBottomOf="@+id/outsidePop"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
以前从未有过,编辑文本的创建非常简单,似乎无法在任何地方放置调试器断点以使其在单击 editText 时暂停。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。