настоящее время у меня LinearLayout с тремя элементами, каждый из которых имеет вес одного:Есть ли способ программно вставить представление в LinearLayout, чьи существующие элементы имеют вес и не влияют на эти веса?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/happy_text"
style="@style/TextAppearance.AppCompat.Subhead"
android:layout_width="65sp"
android:layout_height="wrap_content"
android:maxLines="1"
tools:text="Unhappy" />
<SeekBar
android:id="@+id/happiness_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:theme="@style/happinessSeekbarTheme" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:id="@+id/stress_text"
style="@style/TextAppearance.AppCompat.Subhead"
android:layout_width="65sp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="@string/stress" />
<SeekBar
android:id="@+id/stress_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:theme="@style/stressSeekbarTheme" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:id="@+id/pain_text"
style="@style/TextAppearance.AppCompat.Subhead"
android:layout_width="65sp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="@string/pain" />
<SeekBar
android:id="@+id/pain_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:maxHeight="3dp"
android:theme="@style/painSeekbarTheme" />
</LinearLayout>
И это выглядит следующим образом:
В моей программе, я m программно создавать и вставлять TextView с высотой & ширина WRAP_CONTENT в корневой вид:
TextView tView = new TextView(this);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
tView.setLayoutParams(p);
Я вычислил X & Y над большим пальцем SeekBar и установил для них значения X & Y TextView.
Однако, когда я добавляю TextView, я полагаю, что программа делает это добавить маржу TextView к мнению корня и поэтому существующий взвешенный Чайлдс меньше мест для работы, заставляя их выглядеть сжат так:
Есть ли способ вставить TextViews, не затрагивая веса существующих видов в макете?
Спасибо, я постараюсь сделать это. О предоставленном фрагменте кода: задайте параметры макета с помощью textViewHeight, добавьте textViewHeight к существующей высоте или замените его полностью? – damememan
А, добавьте его, не замените. Я отредактирую свой ответ. – DanielLaneDC