我目前正在使用常规RecyclerView
GridLayoutManager
spanCount
,viewType
取决于RecyclerView
Android电视应用。一切都很好,但我有两个问题:
VerticalGridView
将当前的焦点视图保留在网格的中心?似乎列出的问题是使用LeanBack
库中的LayoutManger
修复的,但它使用的spanCount
是内部的,并且不支持*=
答案 0 :(得分:2)
Recycler视图适用于Android TV。您可以包含的可能解决方案是:
1.add focusable和focusableInTouchode to view。通过代码添加focusListner,并在每次单击视图时请求焦点。
2.要将以Recycler View为重点的项目保持在中心,您必须覆盖布局管理器,就像这个例子一样。
RecyclerView smoothScroll to position in the center. android
或
使用layoutManager.scrollToPositionWithOffset(position,offset),其中以位置为中心的视图位置和偏移量是回收者视图宽度/ 2.
答案 1 :(得分:1)
对于常规extern crate rand;
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let mut v = vec![
vec![0f64; 35],
vec![0f64; 35],
vec![0f64; 35],
vec![0f64; 35],
];
for el in &mut v {
for q in el {
*q = rng.gen::<f64>();
}
}
println!("vec: {:?}", v);
}
,
我必须指定:let mut rng = rand::thread_rng();
let v: Vec<Vec<f64>> = (0..4)
.map(|_| (0..35).map(|_| rng.gen()).collect())
.collect();
println!("vec: {:?}", v);
并且RecyclerView
也设置为将焦点发送给RV本身。
我看到的唯一解决方案是选择要定位android:descendantFocusability="beforeDescendants"
的项目的关键听众。
答案 2 :(得分:0)
使用d-pad导航时,您可以尝试使用workaround检查此bug SO question RecycleView
焦点滚动。
这是{{3}}。
这里的问题是GridLayoutManager
使用LinearLayoutManager
onFocusSearchFailed()
的实现,当焦点接近RecyclerView
的内边界时调用LinearLayoutManager's
。 numpy.percentile(df.a,95) # attention : the percentile is given in percent (5 = 5%)
实现只提供第一个/最后一个(取决于滚动方向)元素。因此焦点跳转到新行的第一个/最后一个元素。
因此,也许这种解决方法可以解决您的问题,或者让您了解如何解决问题。