我不明白为什么当代码几乎相同时,结果会有这样的差异。
两个按钮都使用相同的代码生成:
int resId = (tile.getFormula() == null) ? R.layout.template_puzzle_result : R.layout.template_puzzle_formula;
AppCompatButton button = (AppCompatButton) getActivity().getLayoutInflater().inflate(resId, puzzleGrid, false);
colorsNormal = ColorStateList.valueOf(getResources().getColor(R.color.tile_normal));
button.setSupportBackgroundTintList(colorsNormal);
它们是存储在android.support.v7.widget.GridLayout
中的标准按钮。唯一的区别是风格属性。
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_columnWeight="1"
app:layout_rowWeight="1"
app:layout_gravity="fill"
style="@style/PuzzleTileResult"
/>
除background
属性外,样式相同。我不明白有一个奇怪的警告图标。
左键是:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="@color/colorPrimary" />
<stroke
android:width="30px"
android:color="@color/green_215" />
</shape>
右键是:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="@color/colorPrimary" />
<stroke
android:width="3px"
android:color="@color/colorAccent" />
</shape>
颜色
<color name="tile_normal">#ffee00</color> - yellow
<color name="colorPrimary">#3F51B5</color> - blue
<color name="colorAccent">#FF4081</color> - pink
我希望
但它的行为并不一致 - 左键从XML中获取内部颜色,从代码中获取内部颜色。左边的一个周围涂有代码颜色,而右边没有。为什么呢?