LoginSignup
0
0

More than 3 years have passed since last update.

EditTextのbackgroundの色を変える時につまづいたこと

Posted at

はじめての投稿です!
分かりづらい、書いてる内容が間違ってる、こうした方がいいよなどありましたら
ぜひコメント欄までお願いします!

今回はandroidのEditTextのbackgroundの色を変えたいときにハマった話です。

みなさんご存知のEditText。文字が入力できるやつですね。
[通常のEditText]
edit_text_qiita1.png
上の画像は高さをwrap_contentで指定してあります。

でもこれより高さを小さくしたい時ありますよね。
高さを小さくするとこんな感じの見た目になります。

[layout_heightをwrap_contentよりも小さくしたEditText]
edit_text_qiita1のコピー.png
あれなんかNameが消えましたね。。

でもこれbackgroundを指定すると見えるようになるんです。
[android:background="@color/color"を追加]
edit_text_qiita_2.png
おおー見えた。
もちろん透明が良ければ@color/colorのところを@android:color/transparentに変えてあげればオッケーです。

ここまでは僕も知っていました。ですが今回コード上からbackgroundの色をセットしたら、予想と違う結果になったのです!

先ほどのxmlでbackgroundの指定を消して代わりに以下のコードを追加しました。
editText2.setBackgroundColor(resources.getColor(R.color.color))

そしてこれの結果がこちら。
edit_text_qiita_3.png
Nameという文字が表示されていない!!
(すいません。キーボード開いている状態でキャプチャをとったので下に何か写り込んでるのは気にしないでください)

ただよく見ると赤い線がありますよね。つまり入力カーソルはこの位置にあるのです。でも文字が見えていない。。

試行錯誤した結果、最終的にはxmlの方で
android:padding="0dp"
を指定することによって直りました!

ここからは推測なのですが、xmlでandroid:backgroundを指定した時はただ色や画像をセットするだけではなく
paddingなど他のプロパティも変更されてるのかなーと思いました。
詳しいことがわかる方がいらっしゃいましたらぜひ教えてください:bow_tone2:

setBackgroundしてるのに!コードは間違ってないはずなのに!と1時間くらいハマったので
もし同じような方がいらっしゃったらぜひ参考にしていただけたら嬉しいです!!

以上、EditTextのbackgroundの話でした。

我ながら読みづらい文になったな。。。
androidの勉強とともに文章力も鍛えていこう。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0