
Tiefkuehlpizza
Neues Mitglied
- 7
Hallo Zusammen und vielen Dank für den ein oder anderen Hinweis.
Ich versuche mich ein bissel an der Android Entwicklung mit Kotlin.
Es ist ein Freizeitprojekt.
Ich komme von der HW nahen Programmierung.
Generell fällt es mir schwer die Architektur und den Informationsfluss in der OOP zu verstehen.
Zum Problem: Ich habe eine "Rumspiel" App mit einer Bottom Bar Navigation mit 4 Einträgen.
Jeder Eintrag referenziert auf ein Fragment, welches über eine FragmentContainerView angezeigt wird.
Als Nächstes wollte ich gerne Swipe Navigation einbauen - einfach wischen um uffs andere Fragment zu kommen.
Mit einer RecycleView hat es bereits funktioniert, jetzt möchte ich die Fragmente wechseln.
Um das erstmal zu probieren erschaffe ich 4 Beispielfragmente, welche ich in der activity_main in einem ViewPager2 Element anzeigen lassen möchte.
Das funktioniert leider noch nicht.
Vielleicht könnt ihr mir helfen woran es liegt?
//Anzeige über Layout activity_main.xml
//Fragment example to navigate through
Layout => fragment_screen_slide_page.xml
//Ich erschaffe meine "Rumspiel" Fragmente => ScreenSlidePagerActivity.kt
ScreenSlidePageFragment.kt
Ich gucke mir das die Tage auch nochmal an, aber momentan funktioniert es nicht.
Vielen Dank für Rückmeldung!
Pizza
Ich versuche mich ein bissel an der Android Entwicklung mit Kotlin.
Es ist ein Freizeitprojekt.
Ich komme von der HW nahen Programmierung.
Generell fällt es mir schwer die Architektur und den Informationsfluss in der OOP zu verstehen.
Zum Problem: Ich habe eine "Rumspiel" App mit einer Bottom Bar Navigation mit 4 Einträgen.
Jeder Eintrag referenziert auf ein Fragment, welches über eine FragmentContainerView angezeigt wird.
Als Nächstes wollte ich gerne Swipe Navigation einbauen - einfach wischen um uffs andere Fragment zu kommen.
Mit einer RecycleView hat es bereits funktioniert, jetzt möchte ich die Fragmente wechseln.
Um das erstmal zu probieren erschaffe ich 4 Beispielfragmente, welche ich in der activity_main in einem ViewPager2 Element anzeigen lassen möchte.
Das funktioniert leider noch nicht.
Vielleicht könnt ihr mir helfen woran es liegt?
//Anzeige über Layout activity_main.xml
Code:
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="300dp"
...
/>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="300dp"
...
/>
//Fragment example to navigate through
Layout => fragment_screen_slide_page.xml
Code:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView style="?android:textAppearanceMedium"
...
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ambientShadowColor"
android:text="Hello" />
</ScrollView>
//Ich erschaffe meine "Rumspiel" Fragmente => ScreenSlidePagerActivity.kt
Code:
private const val NUM_PAGES = 4
class ScreenSlidePagerActivity : FragmentActivity() {
/**
* The pager widget, which handles animation and allows swiping horizontally to access previous
* and next wizard steps.
*/
private lateinit var viewPager: ViewPager2
public override fun onCreate(savedInstanceState: Bundle?) {
DebugLog("Sliding", " :1")
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Instantiate a ViewPager2 and a PagerAdapter.
viewPager = findViewById(R.id.pager)
// The pager adapter, which provides the pages to the view pager widget.
val pagerAdapter = ScreenSlidePagerAdapter(this)
viewPager.adapter = pagerAdapter
}
...
/**
* A simple pager adapter that represents 4 ScreenSlidePageFragment objects, in
* sequence.
*/
private inner class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
override fun getItemCount(): Int = NUM_PAGES
override fun createFragment(position: Int): Fragment = ScreenSlidePageFragment()
}
}
ScreenSlidePageFragment.kt
Code:
class ScreenSlidePageFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.fragment_screen_slide_page, container, false)
}
Ich gucke mir das die Tage auch nochmal an, aber momentan funktioniert es nicht.
Vielen Dank für Rückmeldung!
Pizza
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von:
hagex
- Grund: hagex