Android 先前的文本焦点问题
我正在使用多个片段。 我在片段上添加片段,如下所示Android 先前的文本焦点问题,android,android-fragments,fragment-backstack,Android,Android Fragments,Fragment Backstack,我正在使用多个片段。 我在片段上添加片段,如下所示 supportfragmentmanager .beginTransaction() .add(R.id.container_login, newFragment, newFragment.javaClass.simpleName) .addToBackStack(newFragment.javaClass.simpleName) .commitAl
supportfragmentmanager
.beginTransaction()
.add(R.id.container_login, newFragment, newFragment.javaClass.simpleName)
.addToBackStack(newFragment.javaClass.simpleName)
.commitAllowingStateLoss()
现在的问题是,尽管添加了新片段,但之前的片段并没有失去焦点。
在上一个片段EdditText中键入当前片段类型的edittext
即使是“下一个动作”也会在当前片段中失去焦点,并在上一个片段中移动光标
请提供帮助。片段不会失去焦点,因为您使用了
.add
方法,该方法将新片段添加到容器中已经存在的片段上。
使用替换容器中现有片段的
.replace()
方法。这类似于调用remove(Fragment),然后使用.add()
方法。如果您想在一个容器中添加一个片段是不可能的,但是如果您想用另一个片段替换该片段,则可以这样做,因为一个布局用于一个片段,而不是多个片段,因此,您只需要用另一个片段替换前面的片段
如果您想用新的片段替换以前的片段,我有一个简单的代码
首先,您需要添加一个带有片段参数的方法
fun openFragment(fragment: Fragment?) {
val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.container_content, fragment!!)
transaction.commit()
}
如果您想用另一个片段替换该片段,只需调用如下方法openFragment(FragmentClass.newinstance())
soo将用新片段替换上一个片段
我希望这段代码能帮助您解决问题在新片段的根布局中添加
android:focusable=true
和android:clicable=true
。