我在Nexus 5上运行它.这是我的CardView代码的一部分:
CardView cardView = new CardView(getActivity());
cardView.setRadius(4);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 400);
lp.setMargins(32, 16, 32, 16);
cardView.setLayoutParams(lp);
cardView.setContentPadding(50, 50, 50, 50);
...
cardView.setForeground(selectedItemDrawable);
Run Code Online (Sandbox Code Playgroud)
这是我如何获得selectedItemDrawable:
int[] attrs = new int[] { R.attr.selectableItemBackground };
TypedArray ta = getActivity().obtainStyledAttributes(attrs);
selectedItemDrawable = ta.getDrawable(0);
ta.recycle();
Run Code Online (Sandbox Code Playgroud)
当我点击卡片时,不会出现与selectedItemDrawable一起出现的波纹(它看起来与没有前景设置完全相同).我正在运行5.0,所以这看起来很奇怪,因为appcompat文档只说它不适用于pre-Lollipop设备.有人知道为什么会这样吗?最低API级别为16,目标为21.
android android-cardview rippledrawable android-5.0-lollipop
假设我有一个(以任何方式未排序)数组:
[ 12 64 35 ]
[ 95 89 95 ]
[ 32 54 09 ]
[ 87 56 12 ]
Run Code Online (Sandbox Code Playgroud)
我想对它进行排序,以便第二列按升序排列:
[ 32 54 09 ]
[ 87 56 12 ]
[ 12 64 35 ]
[ 95 89 95 ]
Run Code Online (Sandbox Code Playgroud)
以下是我考虑处理这个问题的方法:
将每个[xyz]值设为一个列表,并将每个xyz值与一个标识符相关联,该标识符的属性是xyz值的y值.然后,对标识符进行排序.(我不确定排序Java数组是否保留该行中的相应值)
使用hashmap执行与上一个相同的操作
但是,上述两种方法显然有些浪费和复杂,因为它们依赖于不需要的外部标识符值,所以有更简单,更快速,更优雅的方法吗?
很抱歉,如果这是一个愚蠢的问题,我对Java排序数组的方式一点也不熟悉.
当您为 PageController 创建一个 viewportFraction 值为 <1.0 的 PageView 时,页面会对齐到视口的中心,如下所示:
我希望当前页面被捕捉到视口的顶部,而下一个页面呈现在底部栏下。我试过对每个页面应用转换:
Transform.translate(offset: Offset(0.0, -36.0), child: page)
Run Code Online (Sandbox Code Playgroud)
乍一看,这似乎有效(请参阅第一张图片),但无法在没有转换的情况下隐藏下一页时呈现下一页(请参阅第二张图片):
我想过使用带有 PageScrollPhysics 的 ListView(它的行为正确),但后来我失去了分页 API(查看我所在的页面/跳转到页面的能力)。以一种始终在屏幕上呈现下一页的方式来执行此操作的适当方法是什么?