0

列とカードの数を作成する単純なカード ゲームのセットアップ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 行が実行されます。

4

1 に答える 1