• スポンサードリンク

EditTextでurl入力時に自動的に折り返させた〜い(でも改行は許さん(●`ε´●))

Android

UsbWebCameraProとUVCStreamerのUIを大幅変更しとります。
その一環でUVCStreamerの接続先設定も変更しちょります。

横画面だけならまだしも縦画面だと大抵のRTMPストリーミング用のurlは画面からはみ出します。
はみ出すとどうなるかというと、横スクロールしないと見えなくなります。

でもRTMPストリーミング用のurlは大文字小文字のアルファベットと数字がランダムに混ざりあった覚えにくい…というか覚えれない文字列なので、出来ればひと目で全体が見えたほうがうれしいです。

というわけで、「EditTextでurl入力時に自動的に折り返させた〜い(でも改行は許さん(●`ε´●))」urlなので途中に改行を入力できてしまうのは当然不可です。

urlを入力する場合、通常はEditTextのinputTypeにInputType.TYPE_TEXT_VARIATION_URI(xmlだと”textUri”)を指定しますが、これは自動的には折り返ししてくれません(常に1行表示され、はみ出した分は横スクロールしないと見れません)。

ネットをウロウロすると、単に複数行表示というとinputTypeにInputType.TYPE_TEXT_FLAG_MULTI_LINEを指定(xmlだとtextMultiLineを指定するか、maxLinesに2以上の値を指定します)というのが沢山でてきます。が、これでは改行を禁止してくれんとです。
また、改行禁止するには、EditTextのinputTypeに”text”を指定したり、maxLineを1にすれば改行されないというのが沢山でてきます。が、これでは自動的に折り返してはくれんとです。
この2つを組みわせようとするとどこかの設定に矛盾が生じます。

あとは、複数行入力できるようにしておいてOnKeyListener#onKeyで改行キーが押された時に処理済みとしてtrueを返せばええちゅうのもありますが、やっつけ感満載で気に入りません。

そこでいろいろ試した結果、次のようにすれば改行不可の自動折り返しのurl(正確にはuri)入力ができるようになりましたとさ。

あぁでも、Androidのバージョンによっては思ったように動かないかもしれないので、自己責任でお願いします。

お疲れ様でした(^.^)/~~~

« »

  • スポンサードリンク

%d人のブロガーが「いいね」をつけました。