Leanback实现专属于TV端的控件,加载布局控件的,和RecyclerView,ListView控件差不多,不同点就是只能用在TV端,LeanBack分为好几种fragment类型。
GuidedStepFragment只是其中一种。
直接上代码吧,,不废话了!!后续再分享其他的fragment的类型。
public class OneStepFragment extends GuidedStepFragment { private static final int ACTION_ID_AGREE = 1; private static final int ACTION_ID_DISAGREE = 2; @Override public GuidanceStylist onCreateGuidanceStylist() { return new GuidanceStylist(){ @Override public int onProvideLayoutId() { //自定义布局,可以放图标 return R.layout.guidance; } }; } @NonNull @Override public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) { String title = "大标题"; String description = "描述描述"; GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(title, description, null, null); return guidance; } @Override public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { actions.add(new GuidedAction.Builder(getActivity()) .id(ACTION_ID_DISAGREE) .title("执行的响应动作") .description("描述") .build() ); actions.add(new GuidedAction.Builder(getActivity()) .id(ACTION_ID_AGREE) .title("执行的响应动作") .description("描述") .build() ); } @Override public void onGuidedActionClicked(GuidedAction action) { switch ((int)action.getId()){ case ACTION_ID_DISAGREE: Toast.makeText(getActivity(),"执行相应的动作", Toast.LENGTH_SHORT).show(); break; case ACTION_ID_AGREE: Toast.makeText(getActivity(),"执行相应的动作", Toast.LENGTH_SHORT).show(); break; } } }style中写,activity设置主题,设置左右两边的权重,我写的是0.3,背景什么的都可以在style中添加,也可以在代码中自定义style,清单文件中把LAUNCHER改成LEANBACK_LAUNCHER。
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<item name="guidedActionContentWidthWeight">@string/guidedactions_width_weight</item>