Gridlayout子控件里面的控件动态改变了shape颜色,然后设置背景,切换页面之后该控件背景显示不全
时间: 2023-08-24 20:06:35 浏览: 98
这个问题可能是因为在动态改变了子控件的shape颜色之后,没有及时更新Gridlayout子控件的布局参数导致的。你可以尝试在改变颜色后,调用Gridlayout子控件的`requestLayout()`方法,强制让其重新计算布局参数并更新显示。另外,也需要确保子控件使用的背景资源在页面切换时正确地加载和显示。如果问题仍然存在,可以提供更多的代码和具体的场景描述,以便更好地帮助你解决问题。
示例代码如下:
```java
// 获取子控件
View child = gridLayout.getChildAt(index);
// 动态改变shape颜色
GradientDrawable drawable = (GradientDrawable) child.getBackground();
drawable.setColor(getResources().getColor(R.color.colorAccent));
// 更新子控件的布局参数并更新显示
child.requestLayout();
```
其中,`index`是Gridlayout子控件的索引,`R.color.colorAccent`是你要设置的颜色资源ID。
注意,如果你使用的是XML布局文件设置背景的话,需要确保shape文件中使用了`solid`标签来设置背景颜色,例如:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/colorAccent" />
<corners android:radius="8dp" />
</shape>
```
如果你还有其他问题或者需要更详细的帮助,请提供更多的信息和代码,让我更好地理解你的问题。
阅读全文
相关推荐

















