when i focus on EditText by click in that, the content of viewpager2 is disappear an when i start typing content is reappear and also when rotate my phone content reappear you can see issue in video here
this is my class for create tablayout and 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)}
this is my activity
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
)
}}
this is my layout
<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>
and finaly this is my fragment layout
<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>
I found bug in my fragment layout i am using a ConstraintLayout into another without any reason so after removing that , bug fixed.