- Forum-Beiträge: 602
21.07.2021, 18:02:00 via Website
21.07.2021 18:02:00 via Website
Hallo zusammen
Ich möchte in einer App, die ich in Kotlin erstelle, ein TabLayout einbauen. Ich habe im Internet ein Beispiel mit einem Adapter gefunden. Ich habe es nachgebaut und es funktioniert nicht. Irgend was ist bei mir faul.
Das eine Problem ist, dass in meiner AdapterKlasse der Rückgabewert "FragmentPagerAdapter" veraltet ist.
class MyAdapter(var context : Context, fm: FragmentManager, var tabCount: Int) : FragmentPagerAdapter(fm){
Was gehört an diese Stelle? Oder hat mir jemand einen Link auf ein neueres Beispiel.
Oder was läuft bei mir schieff?
MainActivity:
package ch.robbisoft.klassennotfall
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.widget.FrameLayout
import android.widget.Toolbar
import androidx.viewpager.widget.ViewPager
import androidx.viewpager2.widget.ViewPager2
import ch.robbisoft.klassennotfall.databinding.ActivityMainBinding
import com.google.android.material.tabs.TabLayout
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var tabs : TabLayout
private lateinit var page : ViewPager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
binding.tobBar.inflateMenu(R.menu.menu_main)
tabs = binding.tabLaytop
page = binding.laySeite
tabs.addTab(tabs.newTab().setText(getString(R.string.lbl_tab_eins)))
tabs.addTab(tabs.newTab().setText(getString(R.string.lbl_tab_zwei)))
tabs.tabGravity = TabLayout.GRAVITY_FILL
val adapter = MyAdapter(this, supportFragmentManager, tabs.tabCount)
page.adapter = adapter
page.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabs))
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener{
override fun onTabSelected(tab: TabLayout.Tab?) {
if (tab != null) {
page.currentItem = tab.position
}
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
TODO("Not yet implemented")
}
override fun onTabReselected(tab: TabLayout.Tab?) {
TODO("Not yet implemented")
}
})
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
return super.onCreateOptionsMenu(menu)
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
}
AdapterKlasse:
package ch.robbisoft.klassennotfall
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class MyAdapter(var context : Context, fm: FragmentManager, var tabCount: Int) : FragmentPagerAdapter(fm){
override fun getCount(): Int {
return tabCount
}
override fun getItem(position: Int): Fragment {
return when (position) {
0 -> {
FragKlasseA()
}
1 -> {
FragKlasseB()
}
else -> getItem(position)
}
}
}
Was muss ich verbessern damit es läuft?
Gruss Renato
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.