是否可以将一个按钮放置为layout_above =“两个不同的视图”
我不知道这是因为我在UI中有两个不同的视图。如果我不能将两个视图的按钮都放在layout_above之上,则一个视图将覆盖该按钮。
对此有何建议?
我尝试以编程方式进行操作,但无法正常工作。我也没有在此找到任何线索,所以我希望这里的人对此有所了解。 :)
只需一个测试代码:
<Button
android:id="@+id/bu_myButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_above="@id/view1" // This is where I wanna add two views! Like "@id/view1 || @id/view2"
android:background="@drawable/ic_btn_myButton"
android:visibility="visible"/>
注意:当其中一个视图可见时,其中一个视图将具有View.Visibility = GONE,并且某些主题都将具有View.Visibilty = GONE。
最诚挚的问候。
答案 0 :(得分:0)
使您的布局如此-
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="@dimen/side_margin1">
<android.support.v7.widget.AppCompatButton
android:id="@+id/bu_myButton"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="@android:color/white"
android:text="1"
android:background="#000000"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:text="2"
android:background="#000000"
android:layout_marginTop="20dp"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="@android:color/white"
android:text="3"
android:background="#000000"
android:layout_marginTop="20dp"/>
</LinearLayout>
</LinearLayout>
在这里,您的按钮bu_myButton将始终位于button1和button2上方。按照您的说明,我在这里提出3个案例-
bu_myButton始终可见,button2可见(使用android:visibility =“ visible”),button3不可见(使用android:visibility =“ gone”)
bu_myButton始终可见,button2不可见(使用android:visibility =“ gone”),button3可见(使用android:visibility =“ visible”)
bu_myButton始终可见,button2可见(使用android:visibility =“ visible”),button3可见(使用android:visibility =“ visible”)
希望有帮助!
答案 1 :(得分:0)
这就是我解决的方法。
如果您对此解决方案有任何意见,请告诉我!这项工作已经完成,并将成为解决方案,直到我找到更大的解决方案为止!
<Button
android:id="@+id/bu_myButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentEnd="true"
android:layout_marginEnd="10dp"
android:layout_centerVertical="true"
android:layout_above="@+id/viewParent"
android:background="@drawable/ic_btn_mylocation"
android:visibility="visible"/>
<RelativeLayout
android:id="@+id/viewParent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="gone">
<RelativeLayout
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RelativeLayout>
<RelativeLayout
android:id="@+id/view2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RelativeLayout>
</RelativeLayout>
因此,viewParent控制按钮的显示方式。如果可见,则按钮将向上移动,否则,按钮将移动至通常位置。
此外,我还根据触发哪个按钮将view1和view2设置为可见。因此,这都是viewParent.VISIBLE和view1.VISIBLE(或view2),虽然不是很好的解决方案,但确实可以完成工作。