我有一个扩展RowsFragment的片段,无论我怎么尝试,我都无法禁用对第一张图片的调光效果。
Can't disable the dimming of unselected rows
下面是我的代码:
public class MainFragment extends RowsFragment {
private static final String TAG = MainFragment.class.getSimpleName();
private ArrayObjectAdapter mRowsAdapter;
private static final int GRID_ITEM_WIDTH = 300;
private static final int GRID_ITEM_HEIGHT = 200;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Log.i(TAG, "onActivityCreated");
super.onActivityCreated(savedInstanceState);
loadRows();
}
private void loadRows() {
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE, false));
HeaderItem cardPresenterHeader = new HeaderItem(1, "CardPresenter");
CardPresenter cardPresenter = new CardPresenter();
ArrayObjectAdapter cardRowAdapter = new ArrayObjectAdapter(cardPresenter);
for(int i=0; i<10; i++) {
Movie movie = new Movie();
movie.setTitle("title" + i);
movie.setStudio("studio" + i);
cardRowAdapter.add(movie);
}
mRowsAdapter.add(new ListRow(cardPresenterHeader, cardRowAdapter));
mRowsAdapter.add(new ListRow(cardPresenterHeader, cardRowAdapter));
setAdapter(mRowsAdapter);
}
字符串
无论我尝试什么改变或组合(使用useFocusDimmer标志,尝试使用BrowseFragment等),我都无法得到我想要的结果。
我最接近的是更改为VerticalGridFragment和Presenter,但缺乏此功能,它只是类似于我试图完成的功能(第二张图片)。
Example of how I want it to look的
先谢了,
2条答案
按热度按时间a14dhokn1#
您必须将RowsFragment与RowPresenter子类一起使用。在RowPresenter子类中,您可以定义自定义的选择动画或尝试调用setSelectView. Enabled。
文件摘录:
当用户滚动行时,一个片段将启动动画并调用setSelectLevel(Presenter.ViewHolder,float),其浮点值介于0和1之间。默认情况下,RowPresenter会在未选定视图的行视图顶部绘制一个暗淡的覆盖。子类可以通过使isUsingDefaultSelectEffect()返回false并重写onSelectLevelChanged(ViewHolder)以应用不同的选择效果来重写此默认效果。
调用setSelectSetEnabled(boolean)来启用/禁用选择效果,这不仅会启用/禁用默认的暗淡效果,而且子类也必须遵守此标志。
jchrr9hc2#
要使卡片背景完全不可见:在ListRowPresenter()示例中设置这些布尔值falses 1.selectRightEnabled(使底部行的阴影不可见)2.shadowEnabled(使选定项目的背景不可见)