どうやらAndroidには壊れたバグView.bringToFront
があります。
ビューをGridViewに配置していて、bringToFront()を呼び出してビューを前面に表示したい場合、GridViewの右下の位置に移動することがあります。
何か怪しげなことが起こっているので、bringToFront()を使用できません。私がそれを呼ばないとき、すべてがうまくいきます。ただし、ビューは重複しています。スケールアニメーションを使用してビューをスケールアップすると、下部と右側のビューによって部分的に隠されます。
私はbringToFrontのソースをチェックアウトしました、そしてそれはparent.bringChildToFront(...)を呼び出します
この方法です
public void bringChildToFront(View child) {
int index = indexOfChild(child);
if (index >= 0) {
removeFromArray(index);
addInArray(child, mChildrenCount);
child.mParent = this;
}
}
どうやらそれ自体からビューを削除します!容赦なく!ViewGroupは非常に馬鹿げているので、シャッフルが制御する他の方法でZインデックスを管理することはできませんか?明らかに、GridViewがその子を削除してから再度追加すると、グリッドの最後に配置されます。
ハッキングに頼ることなく、他の人の上にビューを表示するために私ができることはありますか?私の頭に浮かぶことの1つは、GridViewの上に別のビューを作成することです。これは私がbringToFront()しようとしているビューの上に表示されますが、このソリューションは好きではありません。