#java #android #xml #android-layout
Вопрос:
Добрый день!
Я начну с 2 вопросов:
1.- Я хочу, чтобы LinearLayour автоматически корректировал свой контент всякий раз, когда это необходимо (потому что я отключил элемент в макете).
2.- Клонировать линейный вывод полностью в зависимости от размера массива.
- У меня есть этот код (да, он довольно большой):
<TextView android:id="@ id/textTitleScore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginStart="15dp" android:text="Votaciones" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:contentDescription="@string/titleFinalEvent" android:textSize="28sp"/> <RelativeLayout android:id="@ id/constraint_team" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="activateContent" android:background="@drawable/finaleventteambackground" android:backgroundTint="@color/ourOrange"> <ImageView android:id="@ id/imageView" android:layout_width="80dp" android:layout_height="50dp" android:layout_alignParentStart="true" android:layout_marginLeft="20dp" android:layout_marginTop="15dp" android:layout_marginBottom="10dp" android:layout_centerVertical="true" android:scaleType="fitXY" android:src="@mipmap/littlelogomc" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="Equipo 1" android:fontFamily="@font/seguisbi" android:textColor="@color/ourWhite" android:layout_marginRight="30dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginBottom="10dp"/> </RelativeLayout> <LinearLayout android:id="@ id/team1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/finaleventteambackground"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:layout_marginTop="20dp" android:layout_marginLeft="20dp" android:text="Presentación"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <SeekBar android:id="@ id/seekBarPresentation" android:layout_width="240dp" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:progressDrawable="@drawable/custom_seekbar" android:thumb="@drawable/thumb"/> <RelativeLayout android:layout_width="70dp" android:layout_height="40dp" android:layout_centerVertical="true" android:background="@drawable/edittextbackground" android:layout_marginRight="20dp" android:layout_alignParentEnd="true"> <EditText android:id="@ id/editTextPresentation" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginRight="5dp" android:textAlignment="gravity" android:layout_centerVertical="true" android:textSize="20sp" android:inputType="number" android:background="@android:color/transparent" android:hint="0"/> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:text="Servicio"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <SeekBar android:id="@ id/seekBarService" android:layout_width="240dp" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:progressDrawable="@drawable/custom_seekbar" android:thumb="@drawable/thumb"/> <RelativeLayout android:layout_width="70dp" android:layout_height="40dp" android:layout_centerVertical="true" android:background="@drawable/edittextbackground" android:layout_marginRight="20dp" android:layout_alignParentEnd="true"> <EditText android:id="@ id/editTextService" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginRight="5dp" android:textAlignment="gravity" android:layout_centerVertical="true" android:textSize="20sp" android:inputType="number" android:background="@android:color/transparent" android:hint="0"/> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:text="Sabor"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <SeekBar android:id="@ id/seekBarFlavour" android:layout_width="240dp" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:progressDrawable="@drawable/custom_seekbar" android:thumb="@drawable/thumb"/> <RelativeLayout android:layout_width="70dp" android:layout_height="40dp" android:layout_centerVertical="true" android:background="@drawable/edittextbackground" android:layout_marginRight="20dp" android:layout_alignParentEnd="true"> <EditText android:id="@ id/editTextFlavour" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginRight="5dp" android:textAlignment="gravity" android:layout_centerVertical="true" android:textSize="20sp" android:inputType="number" android:background="@android:color/transparent" android:hint="0"/> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:text="Imagen"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <SeekBar android:id="@ id/seekBarImage" android:layout_width="240dp" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:progressDrawable="@drawable/custom_seekbar" android:thumb="@drawable/thumb"/> <RelativeLayout android:layout_width="70dp" android:layout_height="40dp" android:layout_centerVertical="true" android:background="@drawable/edittextbackground" android:layout_marginRight="20dp" android:layout_alignParentEnd="true"> <EditText android:id="@ id/editTextImage" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginRight="5dp" android:textAlignment="gravity" android:layout_centerVertical="true" android:textSize="20sp" android:inputType="number" android:background="@android:color/transparent" android:hint="0"/> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:fontFamily="@font/segoeprint" android:textColor="@color/ourBlack3" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:text="Tríptico"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <SeekBar android:id="@ id/seekBarTriptych" android:layout_width="240dp" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:layout_alignParentStart="true" android:progressDrawable="@drawable/custom_seekbar" android:thumb="@drawable/thumb"/> <RelativeLayout android:layout_width="70dp" android:layout_height="40dp" android:layout_centerVertical="true" android:background="@drawable/edittextbackground" android:layout_marginRight="20dp" android:layout_alignParentEnd="true"> <EditText android:id="@ id/editTextTriptych" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginRight="5dp" android:textAlignment="gravity" android:layout_centerVertical="true" android:textSize="20sp" android:inputType="number" android:background="@android:color/transparent" android:hint="0"/> </RelativeLayout> </RelativeLayout> <androidx.appcompat.widget.AppCompatButton android:layout_width="120dp" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:layout_marginRight="10dp" android:layout_marginBottom="20dp" android:enabled="false" android:background="@drawable/roundedbutton" android:backgroundTint="@color/ourOrange" android:text="Votar" android:fontFamily="@font/segoeprint" android:textFontWeight="700" android:textColor="@color/ourWhite" android:layout_gravity="center" android:textSize="18sp"/> </LinearLayout> </LinearLayout>
Первый RelativeLayout ( id/constraint_team) имеет событие OnClick (), которое отключает или включает следующий дочерний LinearLayout (@ id/team1). Но родительский LinearLayout(@ id/linear_score) не настраивается, когда я отключаю дочерний LinearLayout.
Я пытался добиться этого с помощью этого кода:
if (linearLayout.isEnabled())
{
for (int i = 0; i < linearLayout.getChildCount(); i )
{
View v = linearLayout.getChildAt(i);
v.setVisibility(View.INVISIBLE);
v.setEnabled(false);
}
linearLayout.setVisibility(View.INVISIBLE);
linearLayout.setEnabled(false);
//linearLayoutScore.getLayoutParams().height = LinearLayout.LayoutParams.WRAP_CONTENT;
//ViewGroup.LayoutParams params = linearLayoutScore.getLayoutParams();
linearLayoutScore.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT));
linearLayoutScore.requestLayout();
}
(Комментарии-это другие неудачные попытки, которые я пробовал)
с помощью этого кода вместо того, чтобы изменять только размер родительской линейки, он изменяет весь экран, чтобы он был только этой родительской линейкой. (Я читал этот набор.Параметры компоновки изменяют только высоту и ширину макета, но, похоже, это так не работает).
- Для второго я не нашел ничего полезного (возможно, я просто использую очень плохое ключевое слово в Google), В основном, если я получу число, например 3, я хочу скопировать свой дочерний LinearLayout и свой относительный вывод (@ id/constraint_team и @ id/team1) так много раз, как я могу этого добиться?
Заранее спасибо
Комментарии:
1. почему вы не используете recyclerview
2. Я бы не стал использовать относительные выкладки. Во всяком случае, ConstraintLayouts-это правильный путь; но я согласен с предыдущим пользователем: для этого и нужен список (RecyclerView). Набор данных, привязанный к набору представлений. При изменении данных представления обновляются, чтобы отразить это изменение.