Most visited

Recently visited

OnboardingFragment

public abstract class OnboardingFragment
extends Fragment

java.lang.Object
   ↳ android.app.Fragment
     ↳ android.support.v17.leanback.app.OnboardingFragment


OnboardingFragment为构建应用程序的入门屏幕提供了一种通用且简单的方法。

Building the screen

The view structure of onboarding screen is composed of the common parts and custom parts. The common parts are composed of title, description and page navigator and the custom parts are composed of background, contents and foreground.

要构建屏幕视图,应该覆盖继承的类:

如果应用程序不想提供这些方法,则每个方法都可以返回 null

Page information

The onboarding screen may have several pages which explain the functionality of the application. The inherited class should provide the page information by overriding the methods:

请注意,信息用于 onCreateView(LayoutInflater, ViewGroup, Bundle) ,因此应在调用 super.onCreateView之前进行初始化。

Animation

Onboarding screen has three kinds of animations:

Logo Splash Animation

When onboarding screen appears, the logo splash animation is played by default. The animation fades in the logo image, pauses in a few seconds and fades it out.

在大多数情况下,标志动画需要定制,因为应用程序的标志图像彼此不同,或者某些应用程序可能想要显示自己的动画。

标志动画可以通过两种方式进行定制:

如果继承的类不提供徽标图像和动画,则徽标动画将被忽略。

Page enter animation

After logo animation finishes, page enter animation starts. The application can provide the animations of custom views by overriding onCreateEnterAnimation().

Page change animation

When the page changes, the default animations of the title and description are played. The inherited class can override onPageChanged(int, int) to start the custom animations.

Finishing the screen

如果用户在浏览所有页面后完成了onFinishFragment()屏幕,则调用onFinishFragment() 继承的类可以重写此方法以显示另一个片段或活动,或者仅删除此片段。

Theming

OnboardingFragment必须有权访问适当的主题。 具体而言,该片段必须接收Theme_Leanback_Onboarding ,或者其父级设置为该主题的主题。 可以通过以下三种方式之一提供主题:

如果以多种方式提供主题,则onProvideTheme覆盖优先,后跟Activity的主题。 (父主题已经设置为入门主题的主题不需要设置onboardingTheme属性;如果设置,它将被忽略。)

Summary

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

XML attributes

android.support.v17.leanback:onboardingDescriptionStyle

主题属性,用于显示屏幕上的说明文字风格。 默认是Widget_Leanback_OnboardingDescriptionStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingHeaderStyle

主题属性,用于在入职屏幕上显示标题的样式。 默认是Widget_Leanback_OnboardingHeaderStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingLogoStyle

主题属性,用于在入职屏幕上显示徽标的样式。 默认是Widget_Leanback_OnboardingLogoStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingNavigatorContainerStyle

主题属性,用于导航屏幕上导航器容器的样式。 默认为Widget_Leanback_OnboardingNavigatorContainerStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingPageIndicatorStyle

主题属性用于页面指示器在入职屏幕上的样式。 默认是Widget_Leanback_OnboardingPageIndicatorStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingStartButtonStyle

主题属性用于开机按钮在开机屏幕上的样式。 默认是Widget_Leanback_OnboardingStartButtonStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingTheme

主题属性,用于入职时使用的整体主题。 Leanback主题为此设置了默认值,但不是从leanback主题派生的自定义主题可以将其设置为@style/Theme.Leanback.Onboarding以指定默认的OnboardingFragment样式。

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

android.support.v17.leanback:onboardingTitleStyle

主题属性,用于在入职屏幕上标题文本的样式。 默认是Widget_Leanback_OnboardingTitleStyle

可能是另一种资源的引用,其形式为“ @[+][package:]type/name ”或形式为“一个主题属性 ?[package:]type/name ”。

Public constructors

OnboardingFragment

OnboardingFragment ()

Public methods

getLogoResourceId

int getLogoResourceId ()

返回飞溅徽标图像的资源ID。

Returns
int The resource ID of the splash logo image.

onCreateView

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.

onProvideTheme

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.

onSaveInstanceState

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.

setLogoResourceId

void setLogoResourceId (int id)

设置飞溅徽标图像的资源ID。 如果标识资源ID设置,将播放默认的标志飞溅动画。

Parameters
id int: The resource ID of the logo image.

Protected methods

getCurrentPageIndex

int getCurrentPageIndex ()

返回当前页面的索引。

Returns
int The index of the current page.

getPageCount

int getPageCount ()

返回页数。

Returns
int The page count.

getPageDescription

CharSequence getPageDescription (int pageIndex)

返回给定页面的描述。

Parameters
pageIndex int: The page index.
Returns
CharSequence The description of the page.

getPageTitle

CharSequence getPageTitle (int pageIndex)

返回给定页面的标题。

Parameters
pageIndex int: The page index.
Returns
CharSequence The title of the page.

onCreateBackgroundView

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.

onCreateContentView

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.

onCreateEnterAnimation

Animator onCreateEnterAnimation ()

调用让继承类创建它的输入动画。 开始动画在标志动画结束后运行。

Returns
Animator The Animator object which runs the page enter animation.

onCreateForegroundView

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.

onCreateLogoAnimation

Animator onCreateLogoAnimation ()

被称为让继承类创建自己的标志动画。

仅在徽标图像资源ID未由setLogoResourceId(int)设置的情况下setLogoResourceId(int) 如果这返回null ,则跳过标志动画。

Returns
Animator The Animator object which runs the logo animation.

onFinishFragment

void onFinishFragment ()

当入职流程结束时调用。

onPageChanged

void onPageChanged (int newPage, 
                int previousPage)

当页面被改变时调用。

Parameters
newPage int: The new page.
previousPage int: The previous page.

Hooray!