拡張ビュー
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
拡張ビューは、親ビューの動作と外観を継承しますが、両方を変更および追加できます。 これを行うには、カスタムビュークラスと新しいレイアウトXMLファイルを記述します。 拡張ビューは、スクリーンレット、リスナー、インタラクターなど、親ビューの他のすべてのクラスを継承します。 拡張ビューの親はフルビューである必要があります。
ここで説明する拡張ビューの例は、ログインスクリーンレットのデフォルトビューと同じUIコンポーネントを示していますが、パスワード強度の計算という機能を追加しています。 もちろん、パスワードの強度の計算に制限されるわけではありません。必要なものを実装できます。
-
ビューのスクリーンレットとその使用目的にちなんだ名前の新しいレイアウトXMLファイルを作成します。 UIの構築を開始する良い方法は、親のレイアウトXMLファイルを複製し、テンプレートとして使用することです。 ログインスクリーンレットの拡張ビューの新しいレイアウトファイルは、ログインスクリーンレットのデフォルトビューレイアウトファイル
login_default.xml
基づいており、パスワード強度計算を追加するため、login_password.xml
と呼ばれます。 -
親Viewクラスを拡張する新しいカスタムViewクラスを作成します。 スクリーンレットと、追加またはオーバーライドする機能にちなんで名前を付けます。 サンプルのViewクラス
LoginCheckPasswordView
は、デフォルトビューのLoginView
クラスを拡張し、onClick
メソッドをオーバーライドしてパスワードの強度を計算します。public class LoginCheckPasswordView extends LoginView { // parent's constructors go here... @Override public void onClick(View view) { // compute password strength if (passwordIsStrong) { super.onClick(view); } else { // Present user message } } }
-
カスタムビューの完全修飾クラス名の後に、レイアウトXMLファイルのルート要素の名前を変更します。 たとえば、
login_password.xml
ルート要素はcom.your.package.LoginCheckPasswordView
です。<com.your.package.LoginCheckPasswordView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> ...
-
新しいレイアウトの名前を
liferay:layoutId
属性の値として使用して、アクティビティまたはフラグメントのいずれかにビューのスクリーンレットを挿入します。 たとえば、新しいlogin_password
レイアウトを使用するには、アクティビティまたはフラグメントにLoginScreenlet
を挿入し、liferay:layoutId = "@ layout / login_password"
ます。
Bank of Westeros サンプルアプリの Westerosビューセット は、確認できる拡張ビューがいくつかあります。 ログインスクリーンレットのパスワードをクリアテキストで表示するための新しいボタンを追加する拡張ビューがあります。 ビューは、カスタムレイアウトファイル login_westeros.xml
およびカスタムビュークラス LoginView
ます。 Westerosビューセットには、ユーザーポートレートスクリーンレットの拡張ビューも含まれています。ユーザーのポートレート写真の境界線の色と幅を変更し、カスタムレイアウトファイル userportrait_westeros.xml
とカスタムビュークラス UserPortraitView
ます。