CardScrollView

在 API 级别 XE12 中引入

一个 View,用于显示水平滚动的子视图(称为卡片)。

这些卡片来自与 CardScrollView 关联的 CardScrollAdapter。每张卡片在视觉上表示一个 Object 项。

如需了解详情,请参阅 在 Activity 中滚动卡片

常规用法

  1. 使用标准视图层次结构或 CardBuilder 类构建一组卡片。
  2. 实现 CardScrollAdapter 以将一组卡片提供给 CardScrollView。每张卡都有一个唯一的 Object 标识符,表示特定的 Object 项。
  3. 将 Activity 的内容视图设置为 CardScrollView 或在布局中使用 CardScrollView

处理滚动和交互

CardScrollView 会使用从 AdapterView 继承的以下监听器接口通知您:

嵌套类
枚举 CardScrollView.Animation 定义用于导航到、插入或删除卡片的动画类型。
继承的常量
继承的字段
公共构造函数
CardScrollView上下文)
CardScrollView上下文上下文,AttributeSet 属性)
CardScrollView(Context 上下文, AttributeSet 属性, int defStyle)
公共方法
void
布尔值
animate(int position, CardScrollView.Animation animationType)
void
CardScrollAdapter
长整型
整型
查看
布尔值
布尔值
布尔值
onKeyDown(整数 keyCode, KeyEvent 事件)
void
onWindowFocusChanged(布尔值 hasWindowFocus)
void
setAdapterCardScrollAdapter 适配器)
void
setEmptyView(View emptyView)
void
setHorizontalScrollBarEnabled(布尔值启用)
void
setSelectionsetSelection(int position)
受保护的方法
布尔值
布尔值
void
void
onLayout(布尔值已更改, int left, int top, int right, int bottom)
void
onVisibilityChanged(View changedView, int visibility)
继承的方法

公共构造函数

在 API 级别 XE12 中引入

public CardScrollView (Context context)

在 API 级别 XE12 中引入

public CardScrollView (Context context, AttributeSet attrs)

在 API 级别 XE12 中引入

public CardScrollView (Context context, AttributeSet attrs, int defStyle)

公共方法

在 API 级别 XE12 中引入

public void activate ()

指示 CardScrollView 激活并准备好显示。 TODO(ajcbik):调查我们是否可以使用焦点事件替换 [de]activate。

在 API 级别 XE21 中添加

public 布尔值 animate (int position, CardScrollView.Animation animationType)

为卡片在指定位置添加动画效果,其中 animationType 应为以下项之一:

  • NAVIGATION:从任意位置移动到给定卡片、常规导航
  • INSERTION:移动到给定卡(在插入后显示在视图中)
  • DELETION:如果选中,给定卡片在删除后从视图中消失。
如果滚动条被停用、之前的自主动画仍在进行中或位置无效,系统会跳过动画。只有在已删除的卡片当前处于选中状态时,才会出现删除动画。

CardScrollAdapter 中执行相应的更改之后,应使用插入和删除动画。动画会在动画中的适当时刻对适配器调用 notifyDataSetChanged(),即使已提前跳过或终止也是如此。

用法示例:

 .... insert card at p-th position in adapter ....
 animate(p, INSERTION);    // calls notifyDataSetChanged() on adapter
 

参数
位置 动画中涉及的卡片
animationType 控制要使用的动画类型
返回
  • 动画是否已启动
在 API 级别 XE12 中引入

public void deactivate ()

指示 CardScrollView 停用;在再次调用 activate() 之前,将不会显示该标示。

在 API 级别 XE12 中引入

public CardScrollAdapter getAdapter ()

public getSelectedItemId ()

在 API 级别 XE12 中引入

public getSelectedItemPosition ()

在 API 级别 XE12 中引入

public 视图 getSelectedView ()

在 API 级别 XE12 中引入

public 布尔值 isActivated ()

public 布尔值 isHorizontalScrollBarEnabled ()

public 布尔值 onKeyDown (int keyCode, KeyEvent 事件)

public void onWindowFocusChanged (boolean hasWindowFocus)

在 API 级别 XE12 中引入

public void setAdapter CardScrollAdapter 适配器)

public setEmptyView (View emptyView)

CardScrollView 不支持 setEmptyView(View)

若要获得适当的动画和可拖动行为,请改用具有单个空视图的适配器,用于处理空数据集。

public void setHorizontalScrollBarEnabled (boolean enable)

在 API 级别 XE12 中引入

public void setSelection (int position)

受保护的方法

Protected 布尔值 awakenScrollBars ()

唤醒水平滚动条(如果有)。

Protected 布尔值 dispatchGenericFocusedEvent MotionEvent 事件)

Protected void initializeScrollbars (TypedArray a)

在 API 级别 XE12 中引入

Protected void onLayout (boolean changed, int left, int top, int right, int bottom)

Protected void onVisibilityChanged (View changedView, int visibility)