Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何选择电视项目可扩展,如主页的推荐?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
AndroidTV的主页中,当用户选择推荐视频时,该项目将自动展开并显示比其他未选择项目更多的信息.

屏幕截图在这里

在我的电视应用程序中,我将VerticalGridFragment扩展为GridFragment以显示电视节目.并且还扩展了Presenter以设置项目布局.但是,当选择项目时,项目仅缩放更大,但不会像主页的推荐那样显示更多信息.

如何在我的电视应用程序的演示者中获得此效果

解决方法

也许我找到了解决方案:在Presenter中,我们将创建一个ViewHolder来显示,可能是这样的:

public class GridItemPresenter extends Presenter {
......

public GridItemPresenter(Fragment fragment) {
    this.mainFragment = fragment;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
    // Here is the view we want to show.
    final RichCardView cardView = new RichCardView(parent.getContext());

    // We should change something when the view is focused: show more information.
    cardView.setOnFocuschangelistener(new View.OnFocuschangelistener() {
        @Override
        public void onFocusChange(View view,final boolean isFocused) {
            updateCardBackgroundColor(cardView,isFocused);
            cardView.setSelected(isFocused);
        }
    });
    cardView.setFocusable(true);
    cardView.setFocusableInTouchMode(true);
    ......
    return new ViewHolder(cardView);
}

private static void updateCardBackgroundColor(RichCardView view,boolean selected) {
    ......
}

@Override
public void onBindViewHolder(ViewHolder viewHolder,Object item) {
    RichCardView cardView = (RichCardView) viewHolder.view;
    ......
}

@Override
public void onUnbindViewHolder(ViewHolder viewHolder) {
    RichCardView cardView = (RichCardView) viewHolder.view;
    ......
}
}

ViewHolder是一个容纳显示视图的容器,在代码中,视图是RichCardView.以下是一些RichCardView代码

public class RichCardView extends RelativeLayout {

public RichCardView(Context context) {
    this(context,null);
}

public RichCardView(Context context,AttributeSet attrs) {
    this(context,attrs,android.support.v17.leanback.R.attr.imageCardViewStyle);
}

public RichCardView(Context context,AttributeSet attrs,int defStyle) {
    super(context,defStyle);

    LayoutInflater inflater = LayoutInflater.from(context);
    View v = inflater.inflate(R.layout.lb_rich_card_view,this);

   ......
}

@Override
public void setSelected(boolean selected) {
    super.setSelected(selected);
    if (selected) {
        // when be selected,set some views Visible to show more information.
        mContentView.setVisibility(View.VISIBLE);
        mEpisodeView.setVisibility(View.VISIBLE);
    } else {
        // when not be selected,hide those views.
        mContentView.setVisibility(View.GONE);
        mEpisodeView.setVisibility(View.GONE);
    }
}
}

选择视图后,我们会显示更多视图以显示更多信息.否则,我们隐藏一些视图来隐藏一些信息.

是的,RichCardView只是扩展了RelativeLayout.您还可以扩展所需的任何ViewGroup.如果你想改变生动,只需在更改视图的可见性时添加一些动画.

大佬总结

以上是大佬教程为你收集整理的android – 如何选择电视项目可扩展,如主页的推荐?全部内容,希望文章能够帮你解决android – 如何选择电视项目可扩展,如主页的推荐?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: