From fea6540257547725de7e14257eb991191f83ea23 Mon Sep 17 00:00:00 2001 From: Kurt Aaholst Date: Fri, 5 Feb 2021 13:59:14 +0100 Subject: [PATCH] For #16 add a grid layout option to the basic tab --- .../qtalk/sample/fragments/BasicFragment.kt | 22 ++++++++- .../res/drawable/ic_action_view_as_grid.xml | 10 ++++ .../res/drawable/ic_action_view_as_list.xml | 10 ++++ sample/src/main/res/layout/fragment_basic.xml | 49 ++++++++++++------- 4 files changed, 73 insertions(+), 18 deletions(-) create mode 100644 sample/src/main/res/drawable/ic_action_view_as_grid.xml create mode 100644 sample/src/main/res/drawable/ic_action_view_as_list.xml diff --git a/sample/src/main/java/com/qtalk/sample/fragments/BasicFragment.kt b/sample/src/main/java/com/qtalk/sample/fragments/BasicFragment.kt index 60fff81..ec97a1b 100644 --- a/sample/src/main/java/com/qtalk/sample/fragments/BasicFragment.kt +++ b/sample/src/main/java/com/qtalk/sample/fragments/BasicFragment.kt @@ -6,29 +6,49 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.qtalk.sample.R import com.qtalk.sample.adapters.BasicAdapter import kotlinx.android.synthetic.main.fragment_basic.view.* import kotlinx.coroutines.* + class BasicFragment : Fragment() { private var swipeRefreshLayout: SwipeRefreshLayout? = null private var swipeJob: Job? = null + private var horizontalDividerItemDecoration: DividerItemDecoration? = null + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_basic, container, false) + return inflater.inflate(R.layout.fragment_basic, container, false).apply { + fab.setOnClickListener { + if (basic_recycler_view.layoutManager is GridLayoutManager) { + basic_recycler_view.layoutManager = LinearLayoutManager(context) + basic_recycler_view.removeItemDecoration(horizontalDividerItemDecoration!!) + fab.setImageResource(R.drawable.ic_action_view_as_grid) + } else { + basic_recycler_view.layoutManager = GridLayoutManager(context, 2) + basic_recycler_view.addItemDecoration(horizontalDividerItemDecoration!!) + fab.setImageResource(R.drawable.ic_action_view_as_list) + } + } + + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + horizontalDividerItemDecoration = DividerItemDecoration(context, DividerItemDecoration.HORIZONTAL) + with(view) { with(this.basic_recycler_view) { adapter = BasicAdapter(activity) diff --git a/sample/src/main/res/drawable/ic_action_view_as_grid.xml b/sample/src/main/res/drawable/ic_action_view_as_grid.xml new file mode 100644 index 0000000..a3f4b1d --- /dev/null +++ b/sample/src/main/res/drawable/ic_action_view_as_grid.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/ic_action_view_as_list.xml b/sample/src/main/res/drawable/ic_action_view_as_list.xml new file mode 100644 index 0000000..3848ae5 --- /dev/null +++ b/sample/src/main/res/drawable/ic_action_view_as_list.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/layout/fragment_basic.xml b/sample/src/main/res/layout/fragment_basic.xml index d3094cb..9d35d5a 100644 --- a/sample/src/main/res/layout/fragment_basic.xml +++ b/sample/src/main/res/layout/fragment_basic.xml @@ -1,26 +1,41 @@ - - + - + app:handleHeight="32dp" + app:handleWidth="@dimen/default_handle_size" + app:supportSwipeToRefresh="true" + app:handleVisibilityDuration="500"> + + + + + + - + - \ No newline at end of file + \ No newline at end of file