Android RelativeLayout实现LinearLa
2019-02-14 本文已影响0人
大川的川
-
实现效果 如图 权重效果.png
RelativeLayout
是相对布局控件:以控件之间相对位置或相对父容器位置进行排列,使用RelativeLayout
目的很清晰,减少不必要的多层嵌套,那么如何实现LinearLayout
中的等比例布局呢?RelativeLayout
中也没有layout_weight
权重的设置,如何是好,带着疑问,我们来看看。
-
思路
既然RelativeLayout
是以控件之间相对位置或相对父容器位置进行排列,那么我们是不是可以在我们想要等比例布局的地方首先设置一个参考控件,然后根据这个参考控件左右等比例布局,或者上下等比例布局呢?没错android:layout_centerHorizontal="true"
、android:layout_centerVertical="true"
这两个属性可以帮我们设定一个参考居中控件。
-
实现 XML中的布局 lineCenter控件就是我们上面提到的布局参考控件
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<View
android:id="@+id/lineCenter"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerHorizontal="true" />
<!--标签部分-->
<TextView
android:id="@+id/result1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_20dp"
android:paddingBottom="@dimen/activity_5dp"
android:text="@string/mp_projectSignInPerson"
android:layout_alignParentLeft="true"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/tag1"/>
<TextView
android:id="@+id/result2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:layout_alignLeft="@+id/lineCenter"
android:text="@string/mp_projectSignInState"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/tag1"/>
<TextView
android:id="@+id/result3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_20dp"
android:paddingBottom="@dimen/activity_5dp"
android:text="@string/mp_pointGiveState"
android:layout_alignParentLeft="true"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/result1"/>
<TextView
android:id="@+id/result4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:layout_alignLeft="@+id/lineCenter"
android:text="@string/mp_pointObtain"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/result2"/>
<!--内容部分-->
<TextView
android:id="@+id/txt_signInNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:text="60"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/tag1"
android:layout_toRightOf="@id/result1"/>
<TextView
android:id="@+id/txt_signInState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:text="未签到"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/tag1"
android:layout_toRightOf="@id/result2"/>
<TextView
android:id="@+id/txt_pointGiveState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:text="未发放"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/result1"
android:layout_toRightOf="@id/result3"/>
<TextView
android:id="@+id/txt_pointObtain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_5dp"
android:text="0"
style="@style/TextViewStyle_4A4A4A_14sp"
android:layout_below="@id/result2"
android:layout_toRightOf="@id/result4"/>
</RelativeLayout>