0

Google デザイン ライブラリ (23.1.0) を使用してスナックバーを表示しています。私のスナックバーのコードは次のようになります。

Snackbar snackbar = Snackbar.make(getView(), "Deleted", Snackbar.LENGTH_LONG);
snackbar.setActionTextColor(getResources().getColor(R.color.accent_color));
snackbar.setAction(R.string.undo, //anonymous class omitted);
snackbar.setCallback(//anonymous class omitted);
snackbar.show();

スナックバーが作成され、表示されています。アクション ラベル、アクション カラー、およびすべてのリスナーが期待どおりに機能します。唯一のことは、「削除されました」というメッセージが表示されていないことです。デバッガーを使用し、snackbar.show() で実行を停止すると、snackbar > mView > mMessageView 内に mText というフィールドがあり、値が "Deleted" であることがわかります。それでも、スナックバーにメッセージが表示されません。文字列 const とリソース ID の両方を既に使用してみました。

さらに、きれいなプロジェクトで非常によく似たコードを使用してみましたが、動作します。原因は何ですか?

テキストがありません

4

2 に答える 2

1

おお、文字の色が背景と本当に同じだったようです。私は交換しました:

Snackbar snackbar = Snackbar.make(getView(), "Deleted", Snackbar.LENGTH_LONG);

と:

Snackbar snackbar = Snackbar.make(fab, Html.fromHtml("<font color=\"#ffffff\">Deleted</font>"), Snackbar.LENGTH_LONG);

そして今、私はテキストを見ることができます。

アップデート:

もう少し調査した後、スナックバーのテキストのデフォルトの色は theme.xml から取得されます。私たちのプロジェクトの場合、textColor の値は #313131 に設定され、snackbar の背景は #323232 です。気づくことは不可能です。

于 2015-11-03T12:23:10.667 に答える