カスタム属性の値を親ビューから子ビューに「カスケード」するにはどうすればよいですか?カスタム属性の値を親ビューから子ビューにカスケードしますか?
これは例を使って説明するのが最も簡単である:ここで
<com.example.CustomLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:percent="35" >
<com.example.CustomView
android:id="@+id/customView1"
app:percent="how-to-get-app:percent-value-here???"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</com.example.CustomLayout>
、CustomLayout
はLinearLayout
を拡張します。 attrs.xml
にカスタム属性 "パーセント"を定義して、<declare-styleable>
要素を使用しています。ご覧のとおり、CustomLayout
のXMLで%を35に設定しました。
CustomView
(これはView
になります)に同じ値を渡したいと思います。これはCustomLayout
に含まれます。私はXMLでこれを行う方法を見つけることができません(コードでこれを行うのは簡単です)。
Iは、次の試み:
app:percent="@attr/percent"
app:percent="?attr/percent"
これらの両方(予想通り)TypedArray#getInt()
でNumberFormatException
で失敗します。
これはどのように動作させるためのアイデアですか?
あなたは解決策を見つけたことがありますか?また、万が一、@ CommonSWareはこれまで何か試したことがありますか?私は実際にこの作業をする方法のアイデアがありません... –
@AntonioE。いいえ、方法を見つけたことはありません。代わりにJavaコードでそれをやり終えた。 – curioustechizen
答えがないことに失望しました。 – Everett