From a4b29c7bfb271f302502b8ddf13e0ee7482f5b37 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 1 Nov 2020 15:52:43 +0100 Subject: [PATCH] finished --- Readme.txt | 3 + app/build.gradle | 1 + .../ploedige/navdrawertest/MainActivity.java | 4 ++ .../ui/slideshow/SlideshowFragment.java | 22 +++---- .../ui/slideshow/SlideshowViewModel.java | 19 ------ .../ui/slideshow/TestPagerAdapter.java | 58 +++++++++++++++++++ .../slideshow/fragments/SwipeFragment1.java | 35 +++++++++++ .../slideshow/fragments/SwipeFragment2.java | 35 +++++++++++ .../main/res/layout/fragment_slideshow.xml | 22 ++++--- app/src/main/res/layout/fragment_swipe1.xml | 25 ++++++++ app/src/main/res/layout/fragment_swipe2.xml | 25 ++++++++ app/src/main/res/values/strings.xml | 2 + 12 files changed, 210 insertions(+), 41 deletions(-) delete mode 100644 app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowViewModel.java create mode 100644 app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/TestPagerAdapter.java create mode 100644 app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment1.java create mode 100644 app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment2.java create mode 100644 app/src/main/res/layout/fragment_swipe1.xml create mode 100644 app/src/main/res/layout/fragment_swipe2.xml diff --git a/Readme.txt b/Readme.txt index ba17bfa..0305304 100644 --- a/Readme.txt +++ b/Readme.txt @@ -1,2 +1,5 @@ Name: Paul Lödige Matrikel: 15405036 + +Hinweis: +Der ViewPager ist im Slideshow-Fragment des NavigationDrawers implementiert diff --git a/app/build.gradle b/app/build.gradle index 34b815a..076e1c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,6 +37,7 @@ dependencies { implementation 'androidx.navigation:navigation-ui:2.3.1' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/app/src/main/java/com/ploedige/navdrawertest/MainActivity.java b/app/src/main/java/com/ploedige/navdrawertest/MainActivity.java index 402fb1e..d0c37d9 100644 --- a/app/src/main/java/com/ploedige/navdrawertest/MainActivity.java +++ b/app/src/main/java/com/ploedige/navdrawertest/MainActivity.java @@ -1,3 +1,7 @@ +/** + * @author Paul Lödige (Matrikel: 15405036) + */ + package com.ploedige.navdrawertest; import android.os.Bundle; diff --git a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowFragment.java b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowFragment.java index 726c071..881409e 100644 --- a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowFragment.java +++ b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowFragment.java @@ -1,3 +1,7 @@ +/** + * @author Paul Lödige (Matrikel: 15405036) + */ + package com.ploedige.navdrawertest.ui.slideshow; import android.os.Bundle; @@ -11,25 +15,23 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.viewpager.widget.ViewPager; import com.ploedige.navdrawertest.R; public class SlideshowFragment extends Fragment { - private SlideshowViewModel slideshowViewModel; + TestPagerAdapter testPagerAdapter; + ViewPager viewPager; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - slideshowViewModel = - new ViewModelProvider(this).get(SlideshowViewModel.class); View root = inflater.inflate(R.layout.fragment_slideshow, container, false); - final TextView textView = root.findViewById(R.id.text_slideshow); - slideshowViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); + + testPagerAdapter = new TestPagerAdapter(getFragmentManager()); + + viewPager = (ViewPager) root.findViewById(R.id.pager); + viewPager.setAdapter(testPagerAdapter); return root; } } \ No newline at end of file diff --git a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowViewModel.java b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowViewModel.java deleted file mode 100644 index 822df5d..0000000 --- a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/SlideshowViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ploedige.navdrawertest.ui.slideshow; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class SlideshowViewModel extends ViewModel { - - private MutableLiveData mText; - - public SlideshowViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is slideshow fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/TestPagerAdapter.java b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/TestPagerAdapter.java new file mode 100644 index 0000000..e405d0c --- /dev/null +++ b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/TestPagerAdapter.java @@ -0,0 +1,58 @@ +/** + * @author Paul Lödige (Matrikel: 15405036) + */ + +package com.ploedige.navdrawertest.ui.slideshow; + +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; +import androidx.fragment.app.FragmentStatePagerAdapter; + +import com.ploedige.navdrawertest.ui.slideshow.fragments.SwipeFragment1; +import com.ploedige.navdrawertest.ui.slideshow.fragments.SwipeFragment2; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestPagerAdapter extends FragmentStatePagerAdapter { + + private Map> fragments = new HashMap(); + + public TestPagerAdapter(FragmentManager fm){ + super(fm); + // add all the Classes for the SwipeView + fragments.put("Fragment 1", SwipeFragment1.class); + fragments.put("Fragment 2",SwipeFragment2.class); + } + + @NonNull + @Override + public Fragment getItem(int position) { + if(position >= fragments.size()){ + Log.v("TestPagerAdapter","Position is outside of Array."); + return new SwipeFragment1(); + } + try { + return (Fragment) fragments.get(fragments.keySet().toArray()[position]).newInstance(); + } catch (Exception e) { + e.printStackTrace(); + return new SwipeFragment1(); + } + } + + @Override + public int getCount() { + return fragments.size(); + } + + @Override + public CharSequence getPageTitle(int position){ + return fragments.keySet().toArray()[position].toString(); + } +} diff --git a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment1.java b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment1.java new file mode 100644 index 0000000..becaf8f --- /dev/null +++ b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment1.java @@ -0,0 +1,35 @@ +/** + * @author Paul Lödige (Matrikel: 15405036) + */ + +package com.ploedige.navdrawertest.ui.slideshow.fragments; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.ploedige.navdrawertest.R; + +public class SwipeFragment1 extends Fragment { + + public static SwipeFragment1 newInstance(String param1, String param2) { + SwipeFragment1 fragment = new SwipeFragment1(); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_swipe1, container, false); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment2.java b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment2.java new file mode 100644 index 0000000..38f963c --- /dev/null +++ b/app/src/main/java/com/ploedige/navdrawertest/ui/slideshow/fragments/SwipeFragment2.java @@ -0,0 +1,35 @@ +/** + * @author Paul Lödige (Matrikel: 15405036) + */ + +package com.ploedige.navdrawertest.ui.slideshow.fragments; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.ploedige.navdrawertest.R; + +public class SwipeFragment2 extends Fragment { + + public static SwipeFragment2 newInstance(String param1, String param2) { + SwipeFragment2 fragment = new SwipeFragment2(); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_swipe2, container, false); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml index 2141a33..2a81a15 100644 --- a/app/src/main/res/layout/fragment_slideshow.xml +++ b/app/src/main/res/layout/fragment_slideshow.xml @@ -6,17 +6,15 @@ android:layout_height="match_parent" tools:context=".ui.slideshow.SlideshowFragment"> - + android:layout_height="match_parent"> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_swipe1.xml b/app/src/main/res/layout/fragment_swipe1.xml new file mode 100644 index 0000000..8920342 --- /dev/null +++ b/app/src/main/res/layout/fragment_swipe1.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_swipe2.xml b/app/src/main/res/layout/fragment_swipe2.xml new file mode 100644 index 0000000..0e1ebe6 --- /dev/null +++ b/app/src/main/res/layout/fragment_swipe2.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e3f82f1..d32dbc1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,4 +10,6 @@ Home Gallery Slideshow + + Hello blank fragment \ No newline at end of file