java - 从约束布局循环设置视图子项的重力
问题描述
TextView
当我访问像a 的循环一样动态创建的子项时ConstraintLayout
,它们返回为View
,而没有setGravity
.
有谁知道设置这些视图的重力的方法(TextView
/child 的重力,而不是布局)?
for (int i = 0;i < constraintLayout.getChildCount();i++) {
final View child = constraintLayout.getChildAt(i);
Object tag = child.getTag(R.id.tagId);
if(tag != null) {
//child.setGravity(Gravity.START); // Doesn't work...
} else {} }
我没有看到任何Gravity
设置
ConstraintLayout.LayoutParams
选项ConstraintSet
。
另外,我试过final TextView child = (TextView) constraintLayout.getChildAt(i);
: 但是,这导致了一个致命的异常:java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.TextView。注意:孩子是文本视图,而不是图像视图......
解决方案
先将视图投射到TextView
,然后调用setGravity
.
final View child = constraintLayout.getChildAt(i);
Object tag = child.getTag(R.id.tagId);
if (tag != null) {
if (child instanceof TextView) {
TextView tv = (TextView) child;
tv.setGravity(Gravity.START);
}
} else {}
推荐阅读
- algorithm - 带有分离过程的大 O 表示法
- firebase - 如何处理来自 firebase 实时数据库的 addValueEventListener?
- amazon-web-services - S3 + Cloudfront 慢
- python - 如何从一个单词制作更多字谜
- qt - 如何使用 UDP 连接到我的 pic32 并从中获得答案
- reactjs - 为什么这个 react-hot-loader 不起作用我在调用规则时收到有关加载程序的错误
- r - 尝试使用“增益”功能编织时出现 RMarkdown 错误
- vue.js - 一页Vue和.NET Core应该怎么做Vuex?
- c# - 用于更改 Azure Active Directory 用户个人资料图片的 REST API
- python - 使用列表检索字符串值