#android #android-layout #android-xml #android-gui
#Android #android-layout #android-xml #android-графический интерфейс
Вопрос:
У меня есть макет, который содержит пользовательский макет. Я хотел бы передать стиль от одного элемента к другому. У меня есть класс, который раздувает макет, который я могу опубликовать при необходимости. Этот элемент дизайна добавляется двумя разными макетами с разными размерами в зависимости от того, что требуется.
Child layout
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal">
<TableRow android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_width="fill_parent" android:id="@ id/tableRow1">
<Button android:text="1" android:id="@ id/nb1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:layout_margin="1dip" android:minWidth="70dip"></Button>
<Button android:text="2" android:id="@ id/nb2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:layout_margin="1dip" android:minWidth="70dip"></Button>
<Button android:text="3" android:id="@ id/nb3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:layout_margin="1dip" android:minWidth="70dip"></Button>
</TableRow>
</TableLayout>
И вот родительский макет
Parent Layout
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<pearsonartphoto.AJEG.number_viewer android:id="@ id/numberviewer" style="@style/bigViewer" android:layout_alignParentRight="true" android:layout_alignParentBottom="true">
</pearsonartphoto.AJEG.number_viewer>
</RelativeLayout>
Что я хотел бы сделать, так это передать стиль и повторить стиль во всех дочерних элементах или, по крайней мере, в элементах TextView. Что мне нужно сделать, чтобы это произошло?
Ответ №1:
Насколько я знаю, в Android нет способа наследовать стиль родительского элемента для дочерних представлений, а не просто вложив их!
то, что вы могли бы сделать, это применить стиль к родительскому элементу, скажем, styleA, а затем применить стиль к дочерним элементам, скажем, styleB
и наследование может быть выполнено в стилях, я имею в виду, что styleB может наследовать свойства от styleA, а также переопределять некоторые из его родительских значений
fill_parent wrap_content #00FF00 моноширинное пространство
fill_parent wrap_content #00FF00 моноширинное пространство
плохая новость в том, что вы должны указывать стиль в каждом дочернем элементе 🙁
Я думаю, что это единственный способ придать стиль некоторому элементу, если вы хотите придать стиль группе элементов, тогда вы должны определить тему и применить ее к действию или к приложению, обычно это делается в коде, но это можно сделать и программно.