我需要你对我的设计的建议,如果你有一个更好的想法(或者你同意我的话)这是好的。出于某种原因,我觉得这是一个“石器时代的编程风格”,但让我们看看。
基本上我有我的xml相对布局。在中心(垂直和horizenatlly)。我想根据一些用户输入显示“3个”或3个文本。所以我做的是以下内容:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false"
android:clipToPadding="false" >
<RelativeLayout android:id="@+id/Buttons"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<Button1 .../>
<Button2 .../>
<Button3 .../>
</RelativeLayout>
<RelativeLayout android:id="@+id/Texts"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<TextView1 .../>
<TextView2.../>
<TextView3.../>
</RelativeLayout>
</RelativeLayout>
根据代码中的用户输入,我将可见性设置为Visible或Invisible
这样好吗?如果不是你有什么建议吗?
答案 0 :(得分:3)
您需要的是View.GONE和View.VISIBLE。
使用View.GONE - 布局不占用任何空间(几乎就像它根本不存在一样)。如果您使用View.INVISIBLE,对用户来说,视图(按钮或您的案例中的文本)将不可见,但它们仍然会在屏幕上,从而将其他视图(按钮或文本)向上移动或向下(视图不会处于死点)。
提示:您可以使用'android:layout_centerInParent'而不是'android:layout_centerHorizontal'和'android:layout_centerVertical'。
答案 1 :(得分:2)
在我看来,你所做的可能是原始的,但它很简单,这很好:)但如果你仍然想要一些选择并让生活变得复杂,那么
include
。但是对于你的简单要求,我认为你做得很好。
include选项可以像这样工作,
layout_1.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Buttons"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<Button1 .../>
<Button2 .../>
<Button3 .../>
</RelativeLayout>
layout_2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Texts"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<TextView1 .../>
<TextView2.../>
<TextView3.../>
</RelativeLayout>
你的main_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false"
android:clipToPadding="false" >
<include layout="@layout/layout_1" />
<include layout="@layout/layout_2" />
</RelativeLayout>
include
可帮助您制作可重复使用的布局,并有助于防止xml文件超出比例,特别是在您拥有复杂的UI时。
答案 2 :(得分:0)
第一个选项是:
您可以在Linearlayout中添加所有三个按钮或文本视图,并使用android:layout_centerInParent
将其置于父级中。
第二个选项是:
您可以将中间按钮置于所有三个按钮的中间位置,并使用相应的中间按钮调整其他两个按钮。我们也应该对textview重复这一点。在此选项中,我们应该明确地将所有三个视图都显示为View.GONE
。