最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【未解决】android中RelativeLayout如何指定权重weight

Android crifan 7301浏览 0评论

【背景】

想要在android中一个RelativeLayout中设置对应的weight,以便达到自动适应屏幕宽度的效果。

想要如下设置:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
	android:paddingLeft="20sp"
    android:orientation="horizontal">
    
    <RelativeLayout
		android:id="@+id/variableLabelPart"
		android:layout_width="0dp"
		android:layout_height="wrap_content"
		android:layout_weight="1">

        <TextView
            android:id="@+id/variableStatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:background="@drawable/status_question"/>

        <TextView
            android:id="@+id/variableLabel"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_toRightOf="@id/variableStatus"
            android:paddingLeft="5sp"/>
	</RelativeLayout>
	
    <RelativeLayout
		android:id="@+id/variableValuePart"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_weight="1">
        
        <EditText  
            android:id="@+id/variableValue"
			android:layout_width="wrap_content"   
            android:layout_height="wrap_content"
            android:gravity="center"
            android:enabled="false"
            android:inputType="text" />
        
        <TextView
            android:id="@+id/variableUnit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingLeft="5sp" />

	</RelativeLayout>
</RelativeLayout>

但是@+id/variableLabelPart和@+id/variableValuePart的RelativeLayout,都不能设置weight。

 

【折腾过程】

1.搜:

relativelayout weight

参考:

android – RelativeLayout weight – Stack Overflow

其说是去改为LinearLayout,不是我要的。

2.算了,最后还是改为我之前的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
	android:paddingLeft="20sp"
    android:orientation="horizontal">

        <TextView
            android:id="@+id/variableStatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:background="@drawable/status_question"/>

        <TextView
            android:id="@+id/variableLabel"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_toRightOf="@id/variableStatus"
            android:paddingLeft="5sp"/>

        <TextView
            android:id="@+id/variableUnit"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_alignParentRight="true"
            android:paddingLeft="5sp" />

        <!-- 
        <TextView
            android:id="@+id/variableValue"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/variableUnit"
            android:gravity="center"
            android:paddingLeft="5sp" />
         -->
         
        <EditText  
            android:id="@+id/variableValue"
            android:layout_centerVertical="true"
			android:layout_width="wrap_content"   
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/variableUnit"
            android:gravity="center"
            android:paddingLeft="5sp"
            android:enabled="false"
            android:inputType="text" />


</RelativeLayout>

【总结】

如果想要weight,还是改为LinearLayout吧,RelativeLayout真心不支持。。

转载请注明:在路上 » 【未解决】android中RelativeLayout如何指定权重weight

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.176 seconds, using 22.11MB memory