public abstract class OnboardingFragment
extends Fragment
java.lang.Object | ||
↳ | android.app.Fragment | |
↳ | android.support.v17.leanback.app.OnboardingFragment |
OnboardingFragment为构建应用程序的入门屏幕提供了一种通用且简单的方法。
要构建屏幕视图,应该覆盖继承的类:
onCreateBackgroundView(LayoutInflater, ViewGroup)
to provide the background view. Background view has the same size as the screen and the lowest z-order.onCreateContentView(LayoutInflater, ViewGroup)
to provide the contents view. The content view is located in the content area at the center of the screen.onCreateForegroundView(LayoutInflater, ViewGroup)
to provide the foreground view. Foreground view has the same size as the screen and the highest z-order如果应用程序不想提供这些方法,则每个方法都可以返回 null
。
getPageCount()
to provide the number of pages.getPageTitle(int)
to provide the title of the page.getPageDescription(int)
to provide the description of the page.请注意,信息用于 onCreateView(LayoutInflater, ViewGroup, Bundle)
,因此应在调用 super.onCreateView
之前进行初始化。
在大多数情况下,标志动画需要定制,因为应用程序的标志图像彼此不同,或者某些应用程序可能想要显示自己的动画。
标志动画可以通过两种方式进行定制:
setLogoResourceId(int)
to show the default logo animation. This method should be called in onCreateView(LayoutInflater, ViewGroup, Bundle)
.onCreateLogoAnimation()
and return the Animator
object to run.如果继承的类不提供徽标图像和动画,则徽标动画将被忽略。
onCreateEnterAnimation()
.
onPageChanged(int, int)
to start the custom animations.
如果用户在浏览所有页面后完成了onFinishFragment()
屏幕,则调用onFinishFragment()
。 继承的类可以重写此方法以显示另一个片段或活动,或者仅删除此片段。
OnboardingFragment必须有权访问适当的主题。 具体而言,该片段必须接收Theme_Leanback_Onboarding
,或者其父级设置为该主题的主题。 可以通过以下三种方式之一提供主题:
LeanbackOnboardingTheme_onboardingTheme
. If present, this theme will be used by OnboardingFragment as an overlay to the Activity's theme.onProvideTheme()
method. This can be useful if a subclass is used across multiple Activities.如果以多种方式提供主题,则onProvideTheme覆盖优先,后跟Activity的主题。 (父主题已经设置为入门主题的主题不需要设置onboardingTheme属性;如果设置,它将被忽略。)
XML attributes |
|
---|---|
android.support.v17.leanback:onboardingDescriptionStyle |
Theme attribute for the style of the description text in onboarding screen. |
android.support.v17.leanback:onboardingHeaderStyle |
Theme attribute for the style of the header in onboarding screen. |
android.support.v17.leanback:onboardingLogoStyle |
Theme attribute for the style of the logo in onboarding screen. |
android.support.v17.leanback:onboardingNavigatorContainerStyle |
Theme attribute for the style of the navigator container in onboarding screen. |
android.support.v17.leanback:onboardingPageIndicatorStyle |
Theme attribute for the style of the page indicator in onboarding screen. |
android.support.v17.leanback:onboardingStartButtonStyle |
Theme attribute for the style of the start button in onboarding screen. |
android.support.v17.leanback:onboardingTheme |
Theme attribute for the overall theme used in the onboarding. |
android.support.v17.leanback:onboardingTitleStyle |
Theme attribute for the style of the title text in onboarding screen. |
Inherited XML attributes |
|
---|---|
From class android.app.Fragment
|
Inherited constants |
---|
From interface android.content.ComponentCallbacks2
|
Public constructors |
|
---|---|
OnboardingFragment() |
Public methods |
|
---|---|
final int |
getLogoResourceId() 返回飞溅徽标图像的资源ID。 |
View |
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 调用以使片段实例化其用户界面视图。 |
int |
onProvideTheme() 返回用于样式化片段的主题。 |
void |
onSaveInstanceState(Bundle outState) 打电话询问片段以保存其当前的动态状态,以便稍后可以在重新启动其进程的新实例时重新构建它。 |
final void |
setLogoResourceId(int id) 设置飞溅徽标图像的资源ID。 |
Protected methods |
|
---|---|
final int |
getCurrentPageIndex() 返回当前页面的索引。 |
abstract int |
getPageCount() 返回页数。 |
abstract CharSequence |
getPageDescription(int pageIndex) 返回给定页面的描述。 |
abstract CharSequence |
getPageTitle(int pageIndex) 返回给定页面的标题。 |
abstract View |
onCreateBackgroundView(LayoutInflater inflater, ViewGroup container) 调用让继承类创建背景视图。 |
abstract View |
onCreateContentView(LayoutInflater inflater, ViewGroup container) 被调用来让继承的类创建内容视图。 |
Animator |
onCreateEnterAnimation() 调用让继承类创建它的输入动画。 |
abstract View |
onCreateForegroundView(LayoutInflater inflater, ViewGroup container) 调用让继承的类创建前景视图。 |
Animator |
onCreateLogoAnimation() 被称为让继承类创建自己的标志动画。 |
void |
onFinishFragment() 当入职流程结束时调用。 |
void |
onPageChanged(int newPage, int previousPage) 当页面被改变时调用。 |
Inherited methods |
|
---|---|
From class android.app.Fragment
|
|
From class java.lang.Object
|
|
From interface android.content.ComponentCallbacks2
|
|
From interface android.view.View.OnCreateContextMenuListener
|
|
From interface android.content.ComponentCallbacks
|
主题属性,用于显示屏幕上的说明文字风格。 默认是Widget_Leanback_OnboardingDescriptionStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性,用于在入职屏幕上显示标题的样式。 默认是Widget_Leanback_OnboardingHeaderStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性,用于在入职屏幕上显示徽标的样式。 默认是Widget_Leanback_OnboardingLogoStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性,用于导航屏幕上导航器容器的样式。 默认为Widget_Leanback_OnboardingNavigatorContainerStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性用于页面指示器在入职屏幕上的样式。 默认是Widget_Leanback_OnboardingPageIndicatorStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性用于开机按钮在开机屏幕上的样式。 默认是Widget_Leanback_OnboardingStartButtonStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性,用于入职时使用的整体主题。 Leanback主题为此设置了默认值,但不是从leanback主题派生的自定义主题可以将其设置为@style/Theme.Leanback.Onboarding
以指定默认的OnboardingFragment样式。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
主题属性,用于在入职屏幕上标题文本的样式。 默认是Widget_Leanback_OnboardingTitleStyle
。
可能是另一种资源的引用,其形式为“ @[+][package:]type/name
”或形式为“一个主题属性 ?[package:]type/name
”。
OnboardingFragment ()
int getLogoResourceId ()
返回飞溅徽标图像的资源ID。
Returns | |
---|---|
int |
The resource ID of the splash logo image. |
View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
调用以使片段实例化其用户界面视图。 这是可选的,非图形片段可以返回null(这是默认实现)。 这将在onCreate(Bundle)
和onActivityCreated(Bundle)
之间onActivityCreated(Bundle)
。
如果你从这里返回一个视图,那么当视图被释放时,你将在 onDestroyView()
被调用。
Parameters | |
---|---|
inflater |
LayoutInflater : The LayoutInflater object that can be used to inflate any views in the fragment, |
container |
ViewGroup : If non-null, this is the parent view that the fragment's UI should be attached to. The fragment should not add the view itself, but this can be used to generate the LayoutParams of the view. |
savedInstanceState |
Bundle : If non-null, this fragment is being re-constructed from a previous saved state as given here. |
Returns | |
---|---|
View |
Return the View for the fragment's UI, or null. |
int onProvideTheme ()
返回用于样式化片段的主题。 默认返回-1,表示应该使用主机Activity的主题。
Returns | |
---|---|
int |
The theme resource ID of the theme to use in this fragment, or -1 to use the host Activity's theme. |
void onSaveInstanceState (Bundle outState)
打电话询问片段以保存其当前的动态状态,以便稍后可以在重新启动其进程的新实例时重新构建它。 如果片段的新实例后需要创建,您的包放在这里的数据将提供给包可onCreate(Bundle)
, onCreateView(LayoutInflater, ViewGroup, Bundle)
,并onActivityCreated(Bundle)
。
这对应于Activity.onSaveInstanceState(Bundle)
,这里的大多数讨论也适用于此。 但请注意: 此方法可能在onDestroy()
之前的任何时间onDestroy()
。 有很多情况下,碎片可能大部分被拆除(例如,当放置在背堆栈上而没有UI显示时),但是它的状态不会被保存直到其拥有的活动实际上需要保存其状态。
Parameters | |
---|---|
outState |
Bundle : Bundle in which to place your saved state. |
void setLogoResourceId (int id)
设置飞溅徽标图像的资源ID。 如果标识资源ID设置,将播放默认的标志飞溅动画。
Parameters | |
---|---|
id |
int : The resource ID of the logo image. |
int getCurrentPageIndex ()
返回当前页面的索引。
Returns | |
---|---|
int |
The index of the current page. |
int getPageCount ()
返回页数。
Returns | |
---|---|
int |
The page count. |
CharSequence getPageDescription (int pageIndex)
返回给定页面的描述。
Parameters | |
---|---|
pageIndex |
int : The page index. |
Returns | |
---|---|
CharSequence |
The description of the page. |
CharSequence getPageTitle (int pageIndex)
返回给定页面的标题。
Parameters | |
---|---|
pageIndex |
int : The page index. |
Returns | |
---|---|
CharSequence |
The title of the page. |
View onCreateBackgroundView (LayoutInflater inflater, ViewGroup container)
调用让继承类创建背景视图。 这是可选的,没有背景视图的片段可以返回null
。 这在onCreateView(LayoutInflater, ViewGroup, Bundle)
内部被调用。
Parameters | |
---|---|
inflater |
LayoutInflater : The LayoutInflater object that can be used to inflate the views, |
container |
ViewGroup : The parent view that the additional views are attached to.The fragment should not add the view by itself. |
Returns | |
---|---|
View |
The background view for the onboarding screen, or null . |
View onCreateContentView (LayoutInflater inflater, ViewGroup container)
被调用来让继承的类创建内容视图。 这是可选的,没有内容视图的片段可以返回null
。 这在onCreateView(LayoutInflater, ViewGroup, Bundle)
内部被调用。
内容视图将位于屏幕的中心。
Parameters | |
---|---|
inflater |
LayoutInflater : The LayoutInflater object that can be used to inflate the views, |
container |
ViewGroup : The parent view that the additional views are attached to.The fragment should not add the view by itself. |
Returns | |
---|---|
View |
The content view for the onboarding screen, or null . |
Animator onCreateEnterAnimation ()
调用让继承类创建它的输入动画。 开始动画在标志动画结束后运行。
Returns | |
---|---|
Animator |
The Animator object which runs the page enter animation. |
View onCreateForegroundView (LayoutInflater inflater, ViewGroup container)
调用让继承的类创建前景视图。 这是可选的,不需要前景视图的片段可以返回null
。 这叫做onCreateView(LayoutInflater, ViewGroup, Bundle)
。
这个前景视图将具有最高的z顺序。
Parameters | |
---|---|
inflater |
LayoutInflater : The LayoutInflater object that can be used to inflate the views, |
container |
ViewGroup : The parent view that the additional views are attached to.The fragment should not add the view by itself. |
Returns | |
---|---|
View |
The foreground view for the onboarding screen, or null . |
Animator onCreateLogoAnimation ()
被称为让继承类创建自己的标志动画。
仅在徽标图像资源ID未由setLogoResourceId(int)
设置的情况下setLogoResourceId(int)
。 如果这返回null
,则跳过标志动画。
Returns | |
---|---|
Animator |
The Animator object which runs the logo animation. |
void onFinishFragment ()
当入职流程结束时调用。
void onPageChanged (int newPage, int previousPage)
当页面被改变时调用。
Parameters | |
---|---|
newPage |
int : The new page. |
previousPage |
int : The previous page. |