آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

عدم نمایش محتویات tabLauoyt با رفتن به یک صفحه دیگر و برگشتن

mooo0h  4 سال پیش  4 سال پیش
0 0

ببخشید یک سوال
من یک bottom Navigation دارم که سه تا دکمه داره
دکمه اولیش اسمش home
و هر دکمه یک فرگمنت باز میکنه ..
حالا به فرگمنت اولم یک منوی Tablayout دادم که اون هم سه تا دکمه داره و سه تا فرگمنت باز میشوند برای هر دکمه تب یک فرگمنت در view Pager..
مشکل من :
برای بار اول تمامی تب ها کامل نمایش میدهد
ولی با زدن به یکی از دکمه های پایین و برگشتن به Tab ها محتویات دکمه وسط tabLayout را نمایش نمی دهد///

جالبه برنامه   back می زنم چندین بار  و  میاد پایین  و دوباره باز میکنم   صفحه باز می شود...
زبان کاتلین چرا؟؟/

اداپتور فرگمنتها در تب لایوت
class ViewPagerAdapter(fm: FragmentManager): FragmentPagerAdapter(fm) {

var pagetitle=ArrayList<String>()
var pagefragment=ArrayList<Fragment>()


override fun getItem(position: Int): Fragment {

//return pagefragment[position]

when(position){
0 -> return pagefragment[0]
1 -> return pagefragment[1]
else -> return pagefragment[2]
}

}

override fun getCount(): Int {
return pagefragment.size
}

override fun getPageTitle(position: Int): CharSequence? {
return pagetitle[position]
}


//--------------------------------------------

fun addfragment(fragment: Fragment,title:String){

pagefragment.add(fragment)
pagetitle.add(title)
}



------------------------------------------------------------یکی از فرگمنت هام

class BuyFragment : Fragment() {

lateinit var viewFrag: View
lateinit var recyclerView: RecyclerView
lateinit var myadapter:AdapterBuy

var buyList = ArrayList<MyData>()

var key = Keys()
var dbPath = key.DATABASE_PATH
var dbName = key.DATABASE_NAME


override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

viewFrag = inflater.inflate(R.layout.buy_fragment, container, false)

setUpView()

return viewFrag
}



fun setUpView() {

recyclerView = viewFrag.findViewById(R.id.recyclerViewID)

buy()

myadapter = AdapterBuy(context!!, buyList)
recyclerView.adapter = myadapter
recyclerView.layoutManager = LinearLayoutManager(context!!, LinearLayout.VERTICAL, false)


}

fun buy() {

buyList = ArrayList()

val databasebuy = SQLiteDatabase.openOrCreateDatabase(dbPath + dbName, null)

val cursor = databasebuy.rawQuery("SELECT * FROM data WHERE Subject = 'buy'", null)
try {
while (cursor.moveToNext()) {
val id = cursor.getInt(cursor.getColumnIndex("id"))
val title = cursor.getString(cursor.getColumnIndex("Title"))
val Capital = cursor.getString(cursor.getColumnIndex("Capital"))
val Des = cursor.getString(cursor.getColumnIndex("Description"))
val Img = cursor.getString(cursor.getColumnIndex("Image"))

val myData = MyData(id, title, Capital, Img, Des)
myData.id = id
myData.title = title
myData.capital = Capital
myData.image = Img
myData.des = Des
buyList.add(myData)
}
} finally {
cursor.close()
}
}

}
-----------------------------------------صفحه معرفی تب لایوت

class HomeFragment : Fragment() {

lateinit var toolbarTitle: TextView
lateinit var viewFrag: View

lateinit var viewPager: ViewPager
lateinit var tabLayout: TabLayout

lateinit var myAdapter: ViewPagerAdapter


override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

viewFrag = inflater.inflate(com.example.lowbookmapp.R.layout.home_fragment, container, false)


setUpView()
setTabLayoutInFragment()


return viewFrag

}

override fun onResume() {


if (myAdapter != null) {
myAdapter.notifyDataSetChanged()
}

super.onResume()
}


fun setUpView() {
toolbarTitle = viewFrag.findViewById(R.id.textViewToolbarID)
toolbarTitle.text = "خانه"

}

private fun setTabLayoutInFragment() {

viewPager = viewFrag.findViewById(R.id.viewPagerID)
tabLayout = viewFrag.findViewById(R.id.tabLayoutID)


val newContext = context as AppCompatActivity
myAdapter = ViewPagerAdapter(newContext.supportFragmentManager)

val freeFragment = FreeFragment()
val buyFragment = BuyFragment()
val favFragment = FavFragment()

myAdapter.addfragment(freeFragment, "فهرست اول")
myAdapter.addfragment(buyFragment, "فهرست VIP")
myAdapter.addfragment(favFragment, "علاقه مندی ها")


viewPager.adapter = myAdapter
tabLayout.setupWithViewPager(viewPager)

//-----تعیین صفحه ی پیش فرض----
tabLayout.getTabAt(2)!!.select()


//---دادن آیکن به تب ها----
tabLayout.getTabAt(0)!!.setIcon(R.drawable.lock)
tabLayout.getTabAt(1)!!.setIcon(R.drawable.unlock)
tabLayout.getTabAt(2)!!.setIcon(R.drawable.like)


//----تعریف عملکرد کلیک روی هر تب---
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabReselected(position: TabLayout.Tab?) {


}

override fun onTabUnselected(position: TabLayout.Tab?) {
}

override fun onTabSelected(position: TabLayout.Tab?) {


}
})




}


}

-----------------------------------------------صفحه Bottom Navigation-------------------

class MainActivity : RuntimePermissionsActivity(), BottomNavigationView.OnNavigationItemSelectedListener {


var rwDB = RWDB(this)
var keys = Keys()


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
fullScreenWindow()
setContentView(R.layout.activity_main)

/* val homeFragment = HomeFragment()
openFragment(homeFragment)*/

chekPermissions()


bottomNavigatoin_Id.setOnNavigationItemSelectedListener(this)
bottomNavigatoin_Id.selectedItemId=R.id.navigation_home


}


override fun onNavigationItemSelected(item: MenuItem): Boolean {


when (item.itemId) {

R.id.navigation_home -> {
val homeFragment = HomeFragment()
openFragment(homeFragment)
}

R.id.navigation_Setting -> {
val settingFragment = SettingFragment()
openFragment(settingFragment)
}

R.id.navigation_contact -> {
val infoFragment = InfoFragment()
openFragment(infoFragment)
}
}

return false
}

fun chekPermissions() {
requestPermissions(arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE), keys.Code_Permition_CopyDB)


}

override fun onPermissionsGranted(requestCode: Int) {

when (requestCode) {
keys.Code_Permition_CopyDB -> {
rwDB.copyDataBase()
}
}}


override fun onPermissionsDeny(requestCode: Int) {
when (requestCode) {
keys.Code_Permition_CopyDB -> {
showToas(this, "دسترسی لازم به کپی فایل داده نشد لطفا مجددا تلاش کنید!")
}
}
}


//----------------------تابع فراخوانی و بازکردن فرگمنت--------------
fun openFragment(fragment: Fragment) {

val trans = supportFragmentManager.beginTransaction()
trans.replace(R.id.container, fragment)
trans .addToBackStack(null)
trans.commit()

}

//-----تابع فول اسکرین کردن صفحه نمایش حتی بدون اکشن بار------
fun fullScreenWindow() {
requestWindowFeature(Window.FEATURE_NO_TITLE)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
}

}
0 0
بهتره پروژه تون رو به پیوست ارسال کنید تا بهتر بشه راهنمایی تون کرد (4 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
mooo0h  4 سال پیش
0 0

ببخشید  چطوری ضمیمه کنم فایل رو؟

 

0 0
پروژه رو داخل سایت های آپلود فایل قرار بدین (4 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .