ViewPager2片段内容在关注EditText时消失



当我点击EditText时,viewpager2的内容会消失,当我开始键入内容时,内容会重新出现,当我旋转手机时,内容也会重新出现你可以在这里的视频中看到问题

这是我创建tablayout和viewpager2的类

class ATab (activity: AppCompatActivity,viewPagerId: Int,tabLayoutId: Int) {
val items = arrayListOf<ItemModel>()
val adapter = Adapter(items , activity)
val viewpager = activity.findViewById<ViewPager2>(viewPagerId)
val tabLayout = activity.findViewById<TabLayout>(tabLayoutId)
fun add(fragment : Fragment ,title : String ="" ,icon : String = ""){
items.add(ItemModel(fragment,title,icon))
adapter.notifyDataSetChanged()
}
init {
viewpager.adapter = adapter
TabLayoutMediator(tabLayout,viewpager){tab, position ->
if (!items[position].title.equals("")){
tab.text = items[position].title
}
if (!items[position].icon.equals("")){
val res_id = activity.resources.getIdentifier(items[position].icon,"drawable",activity.packageName)
tab.icon = activity.getDrawable(res_id)
}
}.attach()
}
inner class Adapter(val model : List<ItemModel>, context: AppCompatActivity) : FragmentStateAdapter(context){
override fun getItemCount(): Int {
return  model.count()
}
override fun createFragment(position: Int): Fragment = model[position].fragment
}
inner class ItemModel(var fragment : Fragment ,var title : String ,var icon : String)}

这是我的活动

class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AppTheme2)
super.onCreate(savedInstanceState)
overridePendingTransition(
R.anim.fade_in,
R.anim.fade_out
)
requestWindowFeature(Window.FEATURE_NO_TITLE)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
setContentView(R.layout.activity_login)
val atab = ATab(this,R.id.View_splash,R.id.Tab_splash)
atab.add(SignInFragment(),"ورود")
atab.add(SignUpFragment(),"ثبت نام")
}
override fun onResume() {
super.onResume()
overridePendingTransition(
R.anim.fade_in,
R.anim.fade_out
)
}}

这是我的布局

<androidx.constraintlayout.widget.ConstraintLayout 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"
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash_bachground_gradiant"
tools:context=".Activities.LoginActivity">

<LinearLayout
android:id="@+id/cons_login"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/splash_logo_background"
android:orientation="vertical"
android:padding="16dp"
app:layout_constraintBottom_toTopOf="@+id/guideline5"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="@+id/guideline2">

<com.google.android.material.tabs.TabLayout
android:id="@+id/Tab_splash"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/View_splash"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/View_splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="500px"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Tab_splash">
</androidx.viewpager2.widget.ViewPager2>

</LinearLayout>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.11" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.89" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.18" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.82" /></androidx.constraintlayout.widget.ConstraintLayout>

最后这是我的碎片布局

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/f2"
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"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cons_login"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="?attr/colorWhite"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">

<EditText
android:id="@+id/edt_sign_up_username"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/splash_edt_background"
android:ems="10"
android:hint="نام کاربری"
android:inputType="textPersonName"
android:padding="8dp"
android:textColor="?attr/colorBlack"
android:textColorHighlight="?attr/colorPrimaryDark"
android:textColorHint="?attr/colorHint"
android:textColorLink="?attr/colorPrimary"
android:textCursorDrawable="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@+id/edt_sign_up_fullname"
app:layout_constraintEnd_toEndOf="@+id/edt_sign_up_fullname"
app:layout_constraintStart_toStartOf="@+id/edt_sign_up_fullname"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/edt_sign_up_fullname"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/splash_edt_background"
android:ems="10"
android:hint="نام و نام خانوادگی"
android:inputType="textPersonName"
android:padding="8dp"
android:textColor="?attr/colorBlack"
android:textColorHighlight="?attr/colorPrimaryDark"
android:textColorHint="?attr/colorHint"
android:textColorLink="?attr/colorPrimary"
android:textCursorDrawable="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@+id/edt_sign_up_email"
app:layout_constraintEnd_toEndOf="@+id/edt_sign_up_email"
app:layout_constraintStart_toStartOf="@+id/edt_sign_up_email"
app:layout_constraintTop_toBottomOf="@+id/edt_sign_up_username" />
<EditText
android:id="@+id/edt_sign_up_email"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/splash_edt_background"
android:ems="10"
android:hint="پست الکترونیک"
android:inputType="textEmailAddress"
android:padding="8dp"
android:textColor="?attr/colorBlack"
android:textColorHighlight="?attr/colorPrimaryDark"
android:textColorHint="?attr/colorHint"
android:textColorLink="?attr/colorPrimary"
android:textCursorDrawable="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@+id/edt_sign_up_password"
app:layout_constraintEnd_toEndOf="@+id/edt_sign_up_password"
app:layout_constraintStart_toStartOf="@+id/edt_sign_up_password"
app:layout_constraintTop_toBottomOf="@+id/edt_sign_up_fullname" />
<EditText
android:id="@+id/edt_sign_up_password"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/splash_edt_background"
android:ems="10"
android:gravity="right"
android:hint="رمز عبور"
android:inputType="textPassword"
android:padding="8dp"
android:textColor="?attr/colorBlack"
android:textColorHighlight="?attr/colorPrimaryDark"
android:textColorHint="?attr/colorHint"
android:textColorLink="?attr/colorPrimary"
android:textCursorDrawable="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@+id/edt_sign_up_password_repeat"
app:layout_constraintEnd_toEndOf="@+id/edt_sign_up_password_repeat"
app:layout_constraintStart_toStartOf="@+id/edt_sign_up_password_repeat"
app:layout_constraintTop_toBottomOf="@+id/edt_sign_up_email" />
<EditText
android:id="@+id/edt_sign_up_password_repeat"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/splash_edt_background"
android:ems="10"
android:gravity="right"
android:hint="تکرار رمز عبور"
android:inputType="textPassword"
android:padding="8dp"
android:textColor="?attr/colorBlack"
android:textColorHighlight="?attr/colorPrimaryDark"
android:textColorHint="?attr/colorHint"
android:textColorLink="?attr/colorPrimary"
android:textCursorDrawable="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@+id/btn_sign_up_ok"
app:layout_constraintEnd_toEndOf="@+id/btn_sign_up_ok"
app:layout_constraintStart_toStartOf="@+id/btn_sign_up_ok"
app:layout_constraintTop_toBottomOf="@+id/edt_sign_up_password" />
<Button
android:id="@+id/btn_sign_up_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/btn_style"
android:padding="8dp"
android:text="ثبت نام"
android:textColor="?attr/colorTextrev"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edt_sign_up_password_repeat" />
<ProgressBar
android:id="@+id/prg_login"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/splash_bachground_gradiant"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/btn_sign_up_ok"
app:layout_constraintEnd_toEndOf="@+id/btn_sign_up_ok"
app:layout_constraintStart_toStartOf="@+id/btn_sign_up_ok"
app:layout_constraintTop_toTopOf="@+id/btn_sign_up_ok" />
</androidx.constraintlayout.widget.ConstraintLayout></androidx.constraintlayout.widget.ConstraintLayout>

我发现了错误在我的片段布局中,我在没有任何理由的情况下使用了一个ConstraintLayout到另一个所以在删除后,bug修复了。

最新更新