Последние два дня я искал вопросы, касающиеся программной установки веса макета или группы макетов.

Все ответы, которые я нашел, почти одинаковы, поэтому я знаю, какой код не использовать, но, похоже, я не понимаю, как назначить атрибут float. в следующем коде.

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0f
);
YOUR_VIEW.setLayoutParams(param);

Не мог бы кто-нибудь дать мне пример того, как назначить веса двух TextView с суммой веса 3 ???

0
K.hamdan 14 Окт 2019 в 12:49

1 ответ

Лучший ответ

Это зависит от вашего представления, если вы хотите разделить представление по горизонтали между ними, вы можете использовать что-то вроде этого.

TextView secondTV = findViewById(R.id.secondTextView);
TextView firstTV = findViewById(R.id.firstTextView);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 3);
LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1);

firstTV.setLayoutParams(layoutParams);
secondTV.setLayoutParams(layoutParams1);

И ваш макет выглядит так

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/firstTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello" />

    <TextView
        android:id="@+id/secondTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/icon"
        android:text="Hello" />

</LinearLayout>

Но если вы хотите разделить вид по вертикали, вы можете использовать что-то вроде этого.

TextView secondTV = findViewById(R.id.secondTextView);
TextView firstTV = findViewById(R.id.firstTextView);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 3);
LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1);

firstTV.setLayoutParams(layoutParams);
secondTV.setLayoutParams(layoutParams1);

И ваш макет выглядит так

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/firstTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello" />

    <TextView
        android:id="@+id/secondTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/icon"
        android:text="Hello" />

</LinearLayout>
1
Hadi Moloodi 14 Окт 2019 в 10:27