このハードコードされた計算を回避するにはどうすればいいでしょうか...
<resources>
<dimen name="uno">10dip</dimen>
<dimen name="dos">6dip</dimen>
<dimen name="uno_plus_dos">16dip</dimen>
</resources>
<Button
android:layout_marginTop="@dimen/uno_plus_dos" />
...そしてそれをこのようなものに変換するのですか?
<Button
android:layout_marginTop="@dimin/uno + @dimen/dos" />
ベストアンサー1
申し訳ありませんが、そうではありません。レイアウト XML ファイルは式をサポートしていません。次のいずれかを実行してください。
- そのままにしておく
@dimen/uno_plus_dos
か、 - Javaコードでマージンを設定すると、単一のリソースを多数の追加コード行に置き換えることができます。
- このような式を処理する独自のレイアウトプリプロセッサを作成します。
アップデートのデータバインディングライブラリ式の中でいくつかの演算をサポートしています。この特定のシナリオを処理できるかどうかは不明です。