列とカードの数を作成する単純なカード ゲームのセットアップcolumns
:
TableLayout tableCards = new TableLayout(this);
RelativeLayout.LayoutParams relLayParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
relLayParams.addRule(RelativeLayout.CENTER_IN_PARENT);
tableCards.setLayoutParams(relLayParams);
int i = 0;
StringBuilder sbCardsDebug = new StringBuilder('\n');
for (int r = 0; r < rows; r++) {
// create a new row
TableRow tr = new TableRow(this);
tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
for (int c = 0; c < columns; c++) {
ImageView card = new ImageView(this);
card.setTag("" + i);
card.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
card.setImageDrawable(bitmapCardBackScaled);
tr.addView(card);
card.setOnClickListener(cardClickListener);
i++;
}
// add the row:
tableCards.addView(tr);
}
relativeLayoutCardsHolder.addView(tableCards);
リスナーのどこかに、次のようなコード部分があります。
imageView.setVisibility(View.INVISIBLE);
はカードです(ブレークimageView
ポイントを設定してログに記録すると、正しいカードが表示されます。
問題: 見えなくなりません。
たぶん私は良いスレッドにいないのではないかと考えていますか、それとも非表示を設定した後に何かをする必要がありますか?
私は試してみました:
imageView.post(new Runnable() {
public void run() {
imageView.setVisibility(View.INVISIBLE);
}
});
と
TableLayout parent = (TableLayout) imageView.getParent().getParent();
parent.invalidate();
parent.requestLayout();
そして成功しません。Plsは何か提案をします、私はアイデアがありません、ありがとう。
編集1:
提案として、私もpostDelayedで試しました:
imageView.postDelayed(new Runnable() {
public void run() {
imageView.setVisibility(View.INVISIBLE);
}
}, 600);
リスナー本体は 353 行目から 424 行目までで、アニメーションを使用していくつかのクラスを呼び出し、参照を渡します。これにより、私の汚い作業が明らかになり、ビジネス ロジックも表示されます (NDA 契約)。どの部分に興味がありますか? - 最小 1000 行が実行されます。