Java 视图索引到底是什么?当视图组将视图添加到索引-1时会发生什么
在试图理解上面的代码时,我遇到了一些让我难以理解的问题 1) 我不太确定调用Java 视图索引到底是什么?当视图组将视图添加到索引-1时会发生什么,java,android,Java,Android,在试图理解上面的代码时,我遇到了一些让我难以理解的问题 1) 我不太确定调用parent.indexOfChild(v)得到的视图的索引到底是什么 2) 另外,我注意到parent.addView(rippleViewCreator,index)当视图的索引为-1并且视图被添加到父对象时,会发生什么情况?视图组可以包含子对象,并且索引会说明它是哪个对象 -1表示不存在的子级,因为它从0开始。如果没有子对象,则获取-1值并完成If语句 我不知道rippleViewCreator是什么,但它应该添加
parent.indexOfChild(v)
得到的视图的索引到底是什么
2) 另外,我注意到
parent.addView(rippleViewCreator,index)代码>当视图的索引为-1并且视图被添加到父对象时,会发生什么情况?视图组可以包含子对象,并且索引会说明它是哪个对象
-1表示不存在的子级,因为它从0开始。如果没有子对象,则获取-1值并完成If语句
我不知道rippleViewCreator是什么,但它应该添加一些视图。视图组可以包含子对象,索引显示它是哪一个
-1表示不存在的子级,因为它从0开始。如果没有子对象,则获取-1值并完成If语句
我不知道rippleViewCreator是什么,但它应该添加一些视图
我不太确定一个视图的索引到底是什么
打电话给家长indexOfChild(v)
ViewGroup在内部为其子级保留一个视图[]
indexOfChild(v)
是在该数组中对v的线性搜索。它返回v在其中占据的索引
当视图的索引为-1且视图为
添加到父级
如果未指定索引
或将-1
作为索引传递给Android将mChildrenCount
作为索引,则在mChildrenCount
等于数组长度的情况下调整内部数组的大小。出于性能原因,内部阵列的大小始终由内部因素调整
我不太确定一个视图的索引到底是什么
打电话给家长indexOfChild(v)
ViewGroup在内部为其子级保留一个视图[]
indexOfChild(v)
是在该数组中对v的线性搜索。它返回v在其中占据的索引
当视图的索引为-1且视图为
添加到父级
如果未指定索引
或将-1
作为索引传递给Android将mChildrenCount
作为索引,则在mChildrenCount
等于数组长度的情况下调整内部数组的大小。由于性能原因,内部数组总是根据内部因素调整大小嘿,感谢您的回答,答案非常清楚。然而,我对android和java有些陌生,所以你能给我解释一下什么是McChildrenCount吗?它只是ViewGroup的一个内部成员,负责计算数组中的实际视图数。数组的长度和视图的数量不同只是为了验证,当我传入-1时,viewgroup会调整其数组的大小以包含视图,并将新索引关联到该视图?如果McChildrenCount==internalArray.length,则会执行此操作。那么,如果McChildrenCount等于internalArray.length,为什么McChildrenCount会调整大小?我认为阵列只是想要足够大,可以容纳所有的视图。嘿,谢谢你的回答,答案非常清楚。然而,我对android和java有些陌生,所以你能给我解释一下什么是McChildrenCount吗?它只是ViewGroup的一个内部成员,负责计算数组中的实际视图数。数组的长度和视图的数量不同只是为了验证,当我传入-1时,viewgroup会调整其数组的大小以包含视图,并将新索引关联到该视图?如果McChildrenCount==internalArray.length,则会执行此操作。那么,如果McChildrenCount等于internalArray.length,为什么McChildrenCount会调整大小?我认为数组应该足够大,可以容纳所有的视图。
public static void addRippleToView(View v)
{
ViewGroup parent = (ViewGroup)v.getParent();
int index = -1;
if(parent != null)
{
index = parent.indexOfChild(v);
parent.removeView(v);
}
RippleViewCreator rippleViewCreator = new RippleViewCreator(v.getContext());
rippleViewCreator.setLayoutParams(v.getLayoutParams());
if(index == -1)
parent.addView(rippleViewCreator, index);
else
parent.addView(rippleViewCreator);
rippleViewCreator.addView(v);
}