mdu*_*pls 24 android grid-layout android-layout
我已经使用GridLayout几个星期了,当我打电话时我注意到了
gridLayout.requestLayout()
Run Code Online (Sandbox Code Playgroud)
它在LogCat中吐出以下调试级别消息:
D/android.widget.GridLayout(14048): horizontal constraints: x5 - x0 > 1115, x5 - x4 < 221, x4 - x3 < 221, x3 - x2 < 221, x2 - x1 < 221, x1 - x0 < 221 are inconsistent; permanently removing: x5 - x4 < 221.
Run Code Online (Sandbox Code Playgroud)
我查看了GridLayout的来源,试图找出可能的原因,为什么"约束不一致",但我无法弄明白.
这些消息出现的事实 - 这是我应该关注的事情吗?我认为事情的布局没有任何问题.我在Fragments中有一个GridLayout作为ViewPager中的页面加载,所以当用户在LogCat中多次看到上面输出的页面之间滚动时.
Dan*_*son 13
从GridLayout来源:
Bellman-Ford变体 - 经过修改,可将典型的运行时间缩短O(N^2)至O(N)
GridLayout将其需求转换为具有以下形式的线性约束的系统:
x[i] - x[j] < a[k]
Run Code Online (Sandbox Code Playgroud)
哪里x[i]是变量而且a[k]是常量.
例如,如果变量而不是标记x,y,z我们可能有:
x - y < 17
y - z < 23
z - x < 42
Run Code Online (Sandbox Code Playgroud)
这是线性规划问题的一个特例,它反过来相当于有向图上的单源最短路径问题,O(n^2)Bellman-Ford算法是最常用的通用解决方案.
它有一种solve方法,使用线性编程来保证它必须满足的约束的一致性,给定其配置.如果您确定哪个配置与约束关联并将其x5 - x4 < 221删除,则可以提高布局性能.然后解算器将不必解决它无法满足并自行删除它.
我有同样的问题,我发现我错过了添加XML命名空间.以这种方式纠正了它:
<android.support.v7.widget.GridLayout
xmlns:grid="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
...
</android.support.v7.widget.GridLayout>
Run Code Online (Sandbox Code Playgroud)
然后将兼容性GridLayout使用的属性前缀更改为XML命名空间:
<ImageButton android:id="@+id/btnSentence"
grid:layout_row="0"
grid:layout_column="0"
...
/>
Run Code Online (Sandbox Code Playgroud)
它帮了...希望它也能帮助你.
| 归档时间: |
|
| 查看次数: |
7293 次 |
| 最近记录: |