Android:如何使LinearLayout中的所有元素都相同?

时间:2021-08-04 16:50:26

I would like to create a dialog to display a video title and tags. Below text I would like to add buttons View, Edit and Delete and make these elements same size. Does anyone know how to modify .xml layout file in order to make elements inside LinearView same size?

我想创建一个对话框来显示视频标题和标签。在文本下面,我想添加按钮View,Edit和Delete,并使这些元素的大小相同。有谁知道如何修改.xml布局文件,以使LinearView中的元素大小相同?

The current layout file looks like this:

当前布局文件如下所示:

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

    <LinearLayout 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:orientation="vertical">

          <TextView 
              android:layout_width="wrap_content" 
              android:layout_height="wrap_content" 
              android:id="@+id/txtTitle" android:text="[Title]" >
          </TextView>

          <TextView 
              android:layout_width="wrap_content"
              android:layout_height="wrap_content" 
              android:id="@+id/txtTags"            
              android:text="[Tags]" >
          </TextView>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal">

        <Button 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:id="@+id/btnPlay" 
           android:text="View">
        </Button>

        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/btnEdit" 
            android:text="Edit">
        </Button>

        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/btnDelete" 
            android:text="Delete">
        </Button>

    </LinearLayout>

</LinearLayout>

I would appreciate if anyone could show the solution by modifying the pasted file content.

如果有人能通过修改粘贴的文件内容来显示解决方案,我将不胜感激。

Thanks!

谢谢!

4 个解决方案

#1


155  

Use android:layout_width="0px" and android:layout_weight="1" on the three Buttons. That says the buttons should take up no more than 0 pixels, but the three of them should split any extra space between them. That should give you the visual effect you wish.

在三个按钮上使用android:layout_width =“0px”和android:layout_weight =“1”。这表示按钮不应超过0像素,但其中三个应该分开它们之间的任何额外空间。这应该会给你你想要的视觉效果。

#2


29  

Another way is to make android:layout_width="fill_parent" and android:layout_weight="1" this will also works fine!!!

另一种方法是使android:layout_width =“fill_parent”和android:layout_weight =“1”这也将正常工作!

#3


16  

Use LinearLayout with your desired weightSum and create elements with equal layout_weight. Here is an example ...

将LinearLayout与所需的weightSum一起使用,并创建具有相同layout_weight的元素。这是一个例子......

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="5">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_share_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_search_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_event_note_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_brush_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_menu_white_36dp"/>
</LinearLayout>

So, the weight sum of all elements is 5. Here is the screenshot ...

所以,所有元素的权重总和是5.这是截图...

Android:如何使LinearLayout中的所有元素都相同?

Note that, Google Material Design icons are used. Hope this is helpful.

请注意,使用了Google Material Design图标。希望这有用。

#4


1  

I wrote an EqualSpaceLayout that I think will solve your problem. This is similar to the LinearLayout, but it does not distort the size of the child views. Check it out: http://www.dev-smart.com/archives/225

我写了一个EqualSpaceLayout,我认为它可以解决你的问题。这类似于LinearLayout,但它不会扭曲子视图的大小。请查看:http://www.dev-smart.com/archives/225

#1


155  

Use android:layout_width="0px" and android:layout_weight="1" on the three Buttons. That says the buttons should take up no more than 0 pixels, but the three of them should split any extra space between them. That should give you the visual effect you wish.

在三个按钮上使用android:layout_width =“0px”和android:layout_weight =“1”。这表示按钮不应超过0像素,但其中三个应该分开它们之间的任何额外空间。这应该会给你你想要的视觉效果。

#2


29  

Another way is to make android:layout_width="fill_parent" and android:layout_weight="1" this will also works fine!!!

另一种方法是使android:layout_width =“fill_parent”和android:layout_weight =“1”这也将正常工作!

#3


16  

Use LinearLayout with your desired weightSum and create elements with equal layout_weight. Here is an example ...

将LinearLayout与所需的weightSum一起使用,并创建具有相同layout_weight的元素。这是一个例子......

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="5">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_share_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_search_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_event_note_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_brush_white_36dp"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_menu_white_36dp"/>
</LinearLayout>

So, the weight sum of all elements is 5. Here is the screenshot ...

所以,所有元素的权重总和是5.这是截图...

Android:如何使LinearLayout中的所有元素都相同?

Note that, Google Material Design icons are used. Hope this is helpful.

请注意,使用了Google Material Design图标。希望这有用。

#4


1  

I wrote an EqualSpaceLayout that I think will solve your problem. This is similar to the LinearLayout, but it does not distort the size of the child views. Check it out: http://www.dev-smart.com/archives/225

我写了一个EqualSpaceLayout,我认为它可以解决你的问题。这类似于LinearLayout,但它不会扭曲子视图的大小。请查看:http://www.dev-smart.com/archives/225