編集:tl; dr:WebViewは正しく設定されているように見えますが、白いボックスとして表示されます。実際、最初の2回は機能しますが、その後は失敗します)
ビューを定義するxmlからビュー(WebViewを含む)を膨らませる次のコードがあります。
private void createCard(ViewGroup cvFrame, Card card) {
//... setup vairables...
cvFrame.clearDisappearingChildren();
cvFrame.clearAnimation();
try {
View cv = LayoutInflater.from(getBaseContext()).inflate(R.layout.card_back_view,
cvFrame, true);
cv.setBackgroundDrawable(Drawable.createFromStream(mngr.open(deckName + "_Card_back.png"), deckName));
TextView suit = (TextView)cv.findViewWithTag("card_back_suit");
//...setup text view for suit, this code works fine every time...
WebView title = (WebView)cv.findViewWithTag("card_back_title");
//This WebView doesn't appear to be the one which actually appears on screen (I can change settings till I'm blue in the face, with no effect)
if (title != null) {
title.setBackgroundColor(0x00000000);
title.loadData(titleText, "text/html", "UTF-8");
} else {
Log.e("CardView", "Error can't find title WebView");
}
} catch (IOException e) {
Log.e("CardView", "Error making cards: ", e);
}
}
このメソッドがアクティビティのonCreateメソッドの一部として呼び出されると、WebViewには正しいコードが含まれ、適切に透過的です。
ViewGroupのコンテンツを別のコンテンツに置き換えるジェスチャリスナーがあります(一番上のカードを左にアニメーション化し、一番上のカードの内容をカード2に置き換え、次に一番上のカードを元に戻し、次にカード2をカード3に置き換えます) )。
//Gesture listener event
ViewGroup cvFrame = (ViewGroup)findViewById(R.id.firstCard);
cardLoc++
cvFrame.startAnimation(slideLeft);
(onAnimationEndコード)
public void onAnimationEnd(Animation animation) {
if (animation == slideLeft) {
ViewGroup cvFrameOldFront = (ViewGroup)findViewById(R.id.firstCard);
ViewGroup cvFrameNewFront = (ViewGroup)findViewById(R.id.secondCard);
createCard(cvFrameOldFront, cards.get((cardLoc)%cards.size()));
createCard(cvFrameNewFront, cards.get((cardLoc+1)%cards.size()));
TranslateAnimation slideBack = new TranslateAnimation(0,0,0,0);
slideBack.setDuration(1);
slideBack.setFillAfter(true);
cvFrameOldFront.startAnimation(slideBack);
}
}
アニメーションが発生し、カードの内容を置き換えると、TextViewsuit
は正常に置き換えられ、コードは確実にコードを通過してWebViewの内容を置き換えますが、何らかの理由で、サイズと形状が白い長方形になってしまいます。 WebView、コンテンツなし、透明性なし。
WebViewをTextViewに変更すると、コンテンツが正常に置き換えられるため、WebViewコントロールでのみ発生する問題です:S
誰かが理由を教えてもらえますか/修正を提案できますか?