[解決済み] レイアウトを膨らませてカスタムViewを作成する?
2022-08-23 22:12:56
質問
複数の場所で使用している特定のレイアウトを置き換えるカスタムビューを作成しようとしているのですが、なかなかうまくいきません。
基本的には、これを置き換えたいのですが。
<RelativeLayout
android:id="@+id/dolphinLine"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/background_box_light_blue"
android:padding="10dip"
android:layout_margin="10dip">
<TextView
android:id="@+id/dolphinTitle"
android:layout_width="200dip"
android:layout_height="100dip"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dip"
android:text="@string/my_title"
android:textSize="30dip"
android:textStyle="bold"
android:textColor="#2E4C71"
android:gravity="center"/>
<Button
android:id="@+id/dolphinMinusButton"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_toRightOf="@+id/dolphinTitle"
android:layout_marginLeft="30dip"
android:text="@string/minus_button"
android:textSize="70dip"
android:textStyle="bold"
android:gravity="center"
android:layout_marginTop="1dip"
android:background="@drawable/button_blue_square_selector"
android:textColor="#FFFFFF"
android:onClick="onClick"/>
<TextView
android:id="@+id/dolphinValue"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_marginLeft="15dip"
android:background="@android:drawable/editbox_background"
android:layout_toRightOf="@+id/dolphinMinusButton"
android:text="0"
android:textColor="#2E4C71"
android:textSize="50dip"
android:gravity="center"
android:textStyle="bold"
android:inputType="none"/>
<Button
android:id="@+id/dolphinPlusButton"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_toRightOf="@+id/dolphinValue"
android:layout_marginLeft="15dip"
android:text="@string/plus_button"
android:textSize="70dip"
android:textStyle="bold"
android:gravity="center"
android:layout_marginTop="1dip"
android:background="@drawable/button_blue_square_selector"
android:textColor="#FFFFFF"
android:onClick="onClick"/>
</RelativeLayout>
これによって
<view class="com.example.MyQuantityBox"
android:id="@+id/dolphinBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:myCustomAttribute="@string/my_title"/>
つまり、私はカスタムレイアウトが欲しいのではなく、カスタムビューが欲しいのです(このビューが子を持つことは不可能なはずです)。
MyQuantityBoxのあるインスタンスから別のインスタンスに変更できる唯一のものは、タイトルです。私は、XML でこれを指定できるようにしたいと思います (最後の XML 行で行っているように)。
どのようにこれを行うことができますか?RelativeLayout を /res/layout の XML ファイルに置き、MyBoxQuantity クラスでそれを展開する必要がありますか?もしそうなら、どのようにそうするのですか?
ありがとうございます!
どのように解決するのですか?
はい、できます。 RelativeLayout、LinearLayout などはビューなので、カスタム レイアウトはカスタム ビューになります。 もしあなたがカスタムレイアウトを作成したかったら、できるはずなので、ただ考慮すべき点です。
複合コントロールの作成です。 RelativeLayout のサブクラスを作成し、コードですべてのコンポーネント (TextView など) を追加し、コンストラクタで XML から渡された属性を読み取ることができます。 そして、その属性をタイトルのTextViewに渡すことができます。
http://developer.android.com/guide/topics/ui/custom-components.html
関連
-
[解決済み] 現在のアクティビティからルートビューを取得する
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Androidのレイアウトファイルの「tools:context」とは何ですか?
-
[解決済み] Androidレイアウトのフォルダにサブフォルダを含めることはできますか?
-
[解決済み] onMeasure カスタムビューの説明
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] グリッドビューの高さが削減される
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] Android: xml リソースからの整数値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android - カスタム(複合)コンポーネントの作成
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] edittextのテキストがメールアドレスかどうかを確認するには?