くま's Tech系Blog

基本的には技術で学んだことを書き留めようと思います。雑談もやるかもね!

Androidのツール属性について

今回はAndroidのレイアウト作成時に使うツール属性について書いていこうと思います

ツール属性は主にレイアウトのプレビュー確認で使う名前空間です

<TextView
    android:id="@+id/cardTextView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:text="TextView"
    android:textAlignment="center"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

例えば上記のレイアウトが存在するとして、android:から始まるものは実行時にどう表示するかの設定を行い、tools:から始まるものはプレビューで確認するときの設定を行います

ツール属性の設定

toolsを使えるようにするためにはxmlファイルのルート要素(1番上の要素)に下記を追加します。

設定はこれだけです。次にどんなことができるのかを見ていきましょう!

xmlns:tools="http://schemas.android.com/tools"

ツール属性の種類

ここからはツール属性の種類を見ていきましょう

tools:text

まずは個人的によく使うtools:textです

これは固定文言ではなく、場合によって文言が変更する場合に設定した文言をプレビューでどう表示されるか確認するために使います

tools:text="TextView"

上記を例えば、TextViewに設定するとプレビューでTextViewと表示されます。実際にアプリを起動した場合にはTextViewとは表示されないのであくまでも確認のために使われます

tools:ignore

レイアウトの警告を無視したい場合に使います

本当に無視していいものなのかは確認して無視するべきものだけに使うべきだと個人的に思っているので、ほとんど使わないと思います

ある要素に設定するとその要素と全ての子要素に適用されるので、レイアウトファイルの全てに適用したい場合はトップの要素に記述します

<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    tools:igonre= "contentDescription"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:src="@tools:sample/backgrounds/scenic" />

tools:src

tools:textに似ていますが、レイアウトの画像を確認したい場合に使います

<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    tools:igonre= "contentDescription"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:src="@tools:sample/backgrounds/scenic" />

tools:context

tools:contextはレイアウトファイルのトップ要素に追加してどのActivityやFragemtをプレビューで表示させるかを設定するものです。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".tutorial.MainActivity">

</androidx.constraintlayout.widget.ConstraintLayout>

tools:layout

tools:layoutはFragementで使うもので、プレビューでフラグメント内に描画されるレイアウトを宣言できます

下記のように設定することでフラグメント内に描画されるレイアウトをプレビューで確認できるようになります

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:layout

tools:layoutはFragementで使うもので、プレビューでフラグメント内に描画されるレイアウトを宣言できます

下記のように設定することでフラグメント内に描画されるレイアウトをプレビューで確認できるようになります

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:itemCount

tools:itemCountはRecyclerViewで使うもので、指定した個数分のアイテムをプレビューで表示させます

実際のデータとは異なるので注意です

<androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:itemCount="3" />

開発時にビルドせずプレビューで確認できるので、便利な機能です

ここまで個人的に使うものを羅列しましたが、ツール属性はまだまだあります

公式ドキュメントのリンクを参照に載せておくので、一度見てみてください

参照

developer.android.com