2016-11-17 8 views
0

私はカスタムビューをhava、メソッドonDrawで、私はランダムな色を描いた、ソフトキーボードの表示時に色が変わった!これは私のコードです:私のカスタムビューでソフトキーボードが表示されるときの対処方法

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    LogUtils.d("onDraw"); 
    if (null != percentages && percentages.length > 0) { 
     canvas.translate(myWidth/2, myHeight/2); 
     RectF rectF = new RectF(-mRadius, -mRadius, mRadius, mRadius); 
     float currentPai = 0; 
     for (int i = 0; i < percentages.length; i++) { 
      Paint arcPaint = new Paint(); 
      arcPaint.setStyle(Paint.Style.FILL); 
      //This is my random color! 
      int color = Color.rgb(NumberFormatUtils.getRandomInt(255), NumberFormatUtils 
        .getRandomInt(255), NumberFormatUtils.getRandomInt(255)); 
      arcPaint.setColor(color); 
      float targetPai = (float) (percentages[i] * 3.6); 
      canvas.drawArc(rectF, currentPai, targetPai, true, arcPaint); 
      currentPai = currentPai + targetPai; 
     } 
    } 
} 

私はソフトキーボードショーのときに色をつけたい、どうすればいいですか?ありがとう!

+0

あなたはキーボードリスナーを聞くためにブロードキャストを使用する必要があります –

+0

そして、キーボードがショーであるかどうかを知りたくありません。私はちょうどキーボードショーのときに色を保ちたいです。リスナーを登録すればonDrawキーボードが表示されたときに再度実行されます、なぜ私はキーボードがcustomviewがondrawを実行するのかわかりません! – SevenNight

+0

これで終わりましたが、キーボードが表示されたときにすべてのビューが再度作成されたので、onDrawメソッドが呼び出されたのは –

答えて

0

私はhavenが私の質問を解決しました。単にmanifest.I havaが試したアンドロイド:windowSoftInputMode = "adjustResize | adjustPan"を追加しました!追加されると、メソッドがonDrawはソフトキーボードの表示時に呼び出されません、私はwindowSoftInputModeのすべてのプロパティを学ぶことができるかもしれません!

関連する問題