またブログエディターの更新
ブログエディターの更新はとりあえず終わらせて新アプリの開発に移ろうと思ってたが、
もう1回アップデートした。
ブログエディターは入力アプリだからソフトキーボードが出現することになるんで、画面が横向きだとキーボード出現時にかなり狭い。
横向きだと、
アプリタイトルが表示される箇所を記事タイトルの表示にしたい気はしてたんだが、アプリタイトルタッチしてみたらボタン反応があることに気づいた。
アプリタイトル部分がボタンとして利用できるなら、ここ記事タイトル入力用に使うべきだ!
というわけで、そうするように変更した。
android.app.ActivityのgetActionBar()でActionBarを取得できて、
android.app.ActionBarのsetHomeButtonEnabled(true)でアプリタイトル部分がボタンになる。
ボタンになることに気づいたAndroid4.1は最初からボタンになってるんだが、Androidのバージョンによっては初期時はボタンになって無いようで、
タッチされた項目がアプリタイトル部分の場合は、item.getItemId()が「android.R.id.home」になる。
return false;だと続いて標準の処理が行われて、return true;だとそこで止まると思う。
if文内はreturn true;の方が良かった気がするが、今コード見たらif文内でreturnしてなかった・・・
まあ、問題起きてないし良いか。
今回はアプリタイトル部分を記事タイトルの表示に使いボタンから処理だが、
記事タイトルが無題の場合にわかりやすいように色を変えたかったんだが、
android.app.ActivityにsetTitleColor(int textColor)ってメソッドがあるんだが、これAPIレベル21で廃止されたメソッドで、そもそもActionBarのタイトル色には影響ないみたい。
ActionBarのタイトル色を変更するのはStyleで指定するしかないようで、Javaで動的に変更するにはコンストラクタ使う方法しか無いようで無理がある感じ・・・
Activity.setTitleColorを廃止するなら、代わりにActionBarの文字色変更する機能用意して欲しいもんだな・・・
色変更ができないので実装見送りも考えたが、
次に考えてるアプリもテキストファイル編集系なんでキーボードが出てくる。
テキストファイル編集アプリはファイル名入力欄とか設けないものだと思うし、アプリタイトル部分使うのが良いと思うんで、
単色だがこの件の変更適用した。
ActionBar.setHomeButtonEnabledがAPIレベル14(Android 4.0)からなんで、元はActionBar使うためにAPIレベル11(Android 3.0)からだったが、
古い端末には対応しなくなった。
もう1回アップデートした。
ブログエディターは入力アプリだからソフトキーボードが出現することになるんで、画面が横向きだとキーボード出現時にかなり狭い。
横向きだと、
- タイトル入力欄
- 本文入力欄
- 広告
アプリタイトルが表示される箇所を記事タイトルの表示にしたい気はしてたんだが、アプリタイトルタッチしてみたらボタン反応があることに気づいた。
アプリタイトル部分がボタンとして利用できるなら、ここ記事タイトル入力用に使うべきだ!
というわけで、そうするように変更した。
android.app.ActivityのgetActionBar()でActionBarを取得できて、
android.app.ActionBarのsetHomeButtonEnabled(true)でアプリタイトル部分がボタンになる。
ボタンになることに気づいたAndroid4.1は最初からボタンになってるんだが、Androidのバージョンによっては初期時はボタンになって無いようで、
getActionBar().setHomeButtonEnabled(true);
でボタンにする必要がある。public boolean onMenuItemSelected(int featureId,MenuItem item){
if(item.getItemId()==android.R.id.home){
ここに処理
}
return false;
}
アプリタイトル部分がボタンもメニューとして処理できるようで、onMenuItemSelectedで処理できる。if(item.getItemId()==android.R.id.home){
ここに処理
}
return false;
}
タッチされた項目がアプリタイトル部分の場合は、item.getItemId()が「android.R.id.home」になる。
return false;だと続いて標準の処理が行われて、return true;だとそこで止まると思う。
if文内はreturn true;の方が良かった気がするが、今コード見たらif文内でreturnしてなかった・・・
まあ、問題起きてないし良いか。
今回はアプリタイトル部分を記事タイトルの表示に使いボタンから処理だが、
記事タイトルが無題の場合にわかりやすいように色を変えたかったんだが、
android.app.ActivityにsetTitleColor(int textColor)ってメソッドがあるんだが、これAPIレベル21で廃止されたメソッドで、そもそもActionBarのタイトル色には影響ないみたい。
ActionBarのタイトル色を変更するのはStyleで指定するしかないようで、Javaで動的に変更するにはコンストラクタ使う方法しか無いようで無理がある感じ・・・
Activity.setTitleColorを廃止するなら、代わりにActionBarの文字色変更する機能用意して欲しいもんだな・・・
色変更ができないので実装見送りも考えたが、
次に考えてるアプリもテキストファイル編集系なんでキーボードが出てくる。
テキストファイル編集アプリはファイル名入力欄とか設けないものだと思うし、アプリタイトル部分使うのが良いと思うんで、
単色だがこの件の変更適用した。
ActionBar.setHomeButtonEnabledがAPIレベル14(Android 4.0)からなんで、元はActionBar使うためにAPIレベル11(Android 3.0)からだったが、
古い端末には対応しなくなった。