GuidedStep Support¶
GuidedStepSupportFragment
is used to represent a single step in a series of steps. Lounge provides some helper methods/classes to simplify creating GuidedStepSupportFragment
.
Create guided actions¶
We can override onCreateActions()
to add user actions. Lounge provides a DSL createGuidedActions(Context)
to build multiple actions.
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) {
actions += createGuidedActions(requireContext()) {
guidedAction {
// You can access all methods defined in `GuidedAction.Builder`
title("Next")
}
guidedAction {
title("Back")
description("Really?")
}
}
}
Set Event Listener¶
When using the GuidedAction.Builder
, we cannot directly define the event listener, like click listener, for an action. We need to override onGuidedActionClicked()
and process via identify the passed-in GuidedAction
. Use guidedAction {}
DSL and other helper methods like onLoungeGuidedActionClicked
together, set event listener can become easier.
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) {
actions += createGuidedActions(requireContext()) {
guidedAction {
title("Hi")
onClicked { showToast("Hello World!") }
}
}
}
override fun onGuidedActionClicked(action: GuidedAction?) {
onLoungeGuidedActionClicked(action)
}
Add SubActions¶
You can add sub actions via subActions {}
.
createGuidedActions(requireContext()) {
guidedAction {
title("Sign Out")
subActions {
guidedAction {
title("Yes")
}
guidedAction {
title("No")
}
}
}
}
Custom Action Layout¶
By override onCreateActionsStylist()
and returns a LoungeGuidedActionsStylist
, your layout file passed via layoutId(Int)
can be correctly inflated.
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) {
actions += createGuidedActions(requireContext()) {
guidedAction {
infoOnly(true)
focusable(false)
layoutId(R.layout.layout_divider)
}
}
}
override fun onCreateActionsStylist(): GuidedActionsStylist {
return LoungeGuidedActionsStylist()
}
LoungeGuidedStepSupportFragment¶
If you want to reduce more boilerplate codes, you can extend the LoungeGuidedStepSupportFragment
. LoungeGuidedStepSupportFragment
already properly override methods that createGuidedActions(Context)
DSL required.
class GuidedStepExampleFragment : LoungeGuidedStepSupportFragment() {
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) {
actions += createGuidedActions(requireContext()) {
}
}
Create Guidance¶
We can override onCreateGuidance()
and return a new GuidanceStylist.Guidance
that contains context information, such as the step title, description, and icon. Lounge provides a top-level function Guidance
for creating GuidanceStylist.Guidance
. All parameters of Guidance
are default null.
override fun onCreateGuidance(savedInstanceState: Bundle?): GuidanceStylist.Guidance {
return Guidance(
title = "Title",
description = "Description"
)
}
Navigation¶
When using GuidedStepSupportFragment
with Navigation Component, we need to manually setUiStyle
to get correct transition animation. Lounge provides a GuidedStepFragmentNavigator
to automatically do setUiStyle
based on the back stack.
See TODO for more details.