LoginSignup
9
3

More than 1 year has passed since last update.

Toolbarだと思ってたものがActionbarだった話

Last updated at Posted at 2018-08-12

Toolbarの文字の色を変えたくていろいろ調べてたんですが、そもそもデフォルトで見えてるのはToolbarではなくてActionbarだったみたいですね。

Actionbarをいじるにはstyles.xmlでスタイルを作成して、AndroidManifest.xmlにandroid:theme="作成したスタイルのパス"を書くみたいなんですが(多分)、よくわからなかったのといじりやすければActionbarでもToolbarでもどっちでもいいや!ってことで「Actionbarを消してToolbarをのせる」ことにしました。

Actionbarを消す

方法1:スタイルを作成してセットする

app/src/main/res/values/styles.xml
<!--スタイルを作成-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
app/src/main/AndroidManifest.xml
<!--作成したスタイルをセット-->
<activity android:name=".MainActivity"
    android:theme="@style/AppBaseTheme" />

他の画面がある場合も、同じようにスタイルをセットしてあげればActionbarを消せます。
スタイル名(AppBaseTheme)はhogeでもなんでもいいですが、わかりやすい名前にしてくださいね。

私は今回こっちの方法でActionbarを消しました。

方法2:継承をActivityに変更する

MainActivity.kt(変更前)
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // 中略
    }
}
MainActivity.kt(変更後)
class MainActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // 中略
    }
}

Toolbarを実装する

android:textは普通に文字列を入れても大丈夫です。(android:text="hello world"みたいな)
ただ、基本的にはres/values/strings.xmlに文字列を書くようにした方がいいみたいです。

https://codezine.jp/article/detail/9387
アプリを他言語に対応させたい場合、別言語で記述されたstrings.xmlを作成し、所定のフォルダ(例えば日本語ならvalues-ja)に入れておくだけで、Android OSの言語設定に従ってOS側で自動的にstrings.xmlを切り替えてくれる仕組みが整っているからです。

文字色を変えるにはandroid:textColor="#ffffff"のようにRGB形式で書くか、リソースに追加した色を指定します。(下記のコードに書いてある感じ)

activity_main.xml
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent" >

    <!-- Toolbarに表示する文字(例) -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="15dp"
        android:text="@string/main_title"
        android:textColor="@color/color_text"
        android:textSize="18sp" />

</android.support.v7.widget.Toolbar>

hoge.png

分かってしまえば簡単なんですけど、これを知るのに半日使ったんですよね。
もっと上手に調べものできるようになりたい。

2021/9/30追記
余談ですけど「リスト一覧」って日本語おかしいですね…。

9
3
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
9
3