#android #xml #android-layout #android-studio
#Android #xml #android-layout #android-studio
Вопрос:
Вот как это выглядит прямо сейчас:
Как я хочу, чтобы это выглядело:
Я хочу, чтобы текстовое поле, находящееся внутри кнопки (где проходит время), было доступно для редактирования. Как мне это сделать?
Код:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
// NAME 1
<Button
android:id="@ id/name1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/button_border"
android:text="Name"
android:onClick="changeName"/>
// NAME 2
<Button
android:id="@ id/name2"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/button_border"
android:text="NAME"
android:onClick="changeName"/>
</LinearLayout>
Спасибо и извините за простоту вопроса. Я просто любитель, пытающийся узнать больше.
Комментарии:
1. вам не нужно текстовое поле, добавьте time вместе с ‘ n’ к тексту кнопки, чтобы оно было под текстом
2. размещение содержимого поверх другого невозможно в линейной компоновке. Вместо этого используйте относительный макет
3. @VivekMishra когда-нибудь слышал о FrameLayout? в основном, это то, о чем весь макет.
4. @k0sh Я знаю о компоновке фрейма, но в чем проблема при использовании относительной компоновки?
Ответ №1:
Попробуйте этот способ, это поможет вам
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="#f0f8f0"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:gravity="center"
android:background="#4472C4"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Liam Ten"
android:textStyle="bold"
android:textColor="@android:color/white"
android:textSize="16dp"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="01:03:66"
android:textSize="16dp"
android:textColorHint="@android:color/white"
/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Neil C"
android:textSize="16dp"
android:gravity="center"
android:background="#4472C4"
android:textColor="@android:color/white"
android:layout_weight="1"
android:textStyle="bold"
/>
</LinearLayout>
</LinearLayout>
ВЫВОД
Ответ №2:
Я предполагаю, что вы показываете время таймера, которое будет часто меняться. Лучше используйте этот подход.
String myValue = String.format("%s n %s", "Liam Tan" , String.valueOf(yourTimingValue));
myButton.setText(myValue);
Ответ №3:
Для достижения этого есть два способа.
name1.setText("Liam Taen" "n" dateTimeString);
а в xml добавить multiline=true
к названию кнопки1
Во-вторых, используйте
<LinearLayout root layout with orientation horizontal
<LinearLayout width weight 1 where orientation vertical
<Button for name >
<TextView for showing time>
</LinearLayout end linearLayout>
<LinearLayout width weight 1 where orientation vertical>
<Button name2 to center by layout_gravity= center or gravity= center from parent
</LinearLayout end second linearlayout>
</LinearLayout end root linearlayout>