我的问题是我想保留像Buttons这样的3个元素,例如我使用RelativeLayout
作为父级,使用LinearLayout
作为其子级并给予android:weightSum="3"
并添加了3个按钮作为其子级。我已经实现了我想要的UI。
但是,当其中一个Button Visibility状态消失时,就会遇到原始问题。元素不合适。
即使我隐藏一个按钮,其他两个需要调整,我怎么能实现。
如果有,请提供解决方案。
Respective Code
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:weightSum="3.0">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_weight="1.0"
android:textColor="#ffffff"
android:text="TAB1" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="TAB 2"
android:visibility="gone" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="TAB 3" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
您不必设置android:weightSum
属性,只需为每个孩子分配android:layout_weight=1
。
https://developer.android.com/guide/topics/ui/layout/linear.html
要创建一个线性布局,其中每个孩子在屏幕上使用相同的空间量,请将每个视图的android:layout_height设置为“0dp”(对于垂直布局)或者将每个视图的android:layout_width设置为“ 0dp“(用于水平布局)。然后将每个视图的android:layout_weight设置为“1”。
如果要定义最大权重总和,请使用android:weightSum
。 如果未指定,则通过添加所有子项的layout_weight来计算总和。
代码示例:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
答案 1 :(得分:0)
您必须使用相对布局而不是线性布局
<?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="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<Button
android:id="@+id/btnOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_weight="1"
android:text="1"/>
<Button
android:id="@+id/btnTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_weight="1"
android:text="2"/>
<Button
android:id="@+id/btnThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:text="3"/>
如果你为第二个按钮设置了可见性,那么你可以实现这个
答案 2 :(得分:0)
或者您可以编程删除第二个按钮的文本并为此设置transperent背景,如下面的代码
constructor(props) {
super(props)
this.handleChange = this.handleChange.bind(this)
this.state = {contents: 'initialContent'}
}
答案 3 :(得分:0)
android:visibility =&#34;隐藏&#34; 为中间视图设置此属性。
并确保您的子视图(即按钮)宽度设置为ASPxCheckBox
。因为你正在使用重量宽度。
试试这个 -
DataItemTemplate