当我们有一个需求,需要一个button在视图中居中显示,并且占据的宽度是父视图的一半,我们应该怎么做呢?
首先看一下效果图,
看一下xml文件:
<?xml version="1.0" encoding="utf-8"?>
<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="horizontal"
android:weightSum="1"
android:gravity="center"
tools:context="com.example.mac.myapplication.MainActivity">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="测试文字"
android:textSize="30sp" />
</LinearLayout>
这里我们就需要用到了android:weightSum这个属性,在父视图中使用,用来确定其内部的所有子视图的weight所占的比例总和是1,而这里我们的子视图只是一个button,所以我们指定button的为0dp,所以会根据android:weightSum这个属性来决定button的width的值。
这里我们可以总结一下,对于父视图的android:weightSum这个属性为1的,以子视图button的weight为200为例的计算公式:
button的width + button的weight * 200 / sum(weight)
我们指定了width为0dp,所以公式为:
200 * 0 + 0.5 * 200 / 1 = 100;
本人菜鸟一个,有什么不对的地方希望大家指出评论,大神勿喷,希望大家一起学习进步!