我需要在两个相等的垂直区域上划分屏幕,并且在43%的高度必须放置三个TextViews
。一个在屏幕的左半部分,一个在右边,一个在中心。我做到了:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<View android:id="@+id/fakeView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:orientation="vertical"
android:layout_alignRight="@id/fakeView"
android:layout_alignParentLeft="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="43">
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="24"
android:gravity="center_vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="80"
android:textSize="24sp"
android:layout_alignParentRight="true"
android:layout_marginRight="14dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="33" >
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignLeft="@id/fakeView"
android:layout_alignParentRight="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="43">
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="24"
android:gravity="center_vertical">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="80"
android:textSize="24sp"
android:layout_alignParentRight="true"
android:layout_marginRight="14dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="33" >
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal ="true"
android:textSize="24sp" />
</RelativeLayout>
这是一张可以解释我想要的图像:
总体而言,屏幕在其位置上分为左右TextViews
(上边距为全球RelativeLayout
的43%),但我不能将第三TextView
放在中间位置, textView1
和textView2
。
我只有一个想法:
使用TextView2
和View.getHeight()
以编程方式设置LayoutParams
的上边距。但是在OnCreate
活动已停止,我将无法使用此方法,直到活动已恢复。只有在Activity变为 Resumed 之后,我才能替换TextView2
。我认为这是一个糟糕的方式。
P / S全球RelativeLayout
只是屏幕的一小部分
P / SS此布局的左右部分将是可点击的,因此我无法绘制另一个LinearLayout
空白布局以及下面的一个TextView,因为在这种情况下,左侧和右侧变得无法点击。
那么,如何在TextView2
和TextView1
之间放置TextView3
?
答案 0 :(得分:0)
看看这件事是否符合你的需要 它非常简单轻便,但我不会考虑百分比。
结果如下:
xml是:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:orientation="horizontal"
>
<ImageView
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#f00"
android:layout_weight="1"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#00f"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:orientation="horizontal"
android:layout_centerInParent="true"
>
<TextView
android:id="@+id/txt1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="#00f"
android:layout_weight="1"
/>
<TextView
android:id="@+id/txt2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="#f0f"
android:layout_weight="1"
/>
<TextView
android:id="@+id/txt3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="#f00"
android:layout_weight="1"
/>
</LinearLayout>
</RelativeLayout>
并且在onCreate()中我有:
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Make this activity, full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Hide the Title bar of this activity screen
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.mannimar);
}
如果百分比必修,我会研究其他内容。
<强> [编辑] 强>
好的,结果就是这样:
这是布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
android:layout_margin="0dp"
android:padding="0dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:orientation="horizontal"
>
<ImageView
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#f00"
android:layout_weight="1"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#00f"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:orientation="vertical"
android:gravity="center"
>
<!-- Spacewaster: Top -->
<View
android:layout_width="fill_parent"
android:layout_height="0dp"
android:background="#0000"
android:layout_weight="43"
/>
<!-- The TextViews -->
<LinearLayout
android:layout_height="0dp"
android:background="#0000"
android:layout_width="240dp"
android:layout_margin="0dp"
android:orientation="horizontal"
android:layout_weight="14"
>
<TextView
android:id="@+id/txt1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_margin="0dp"
android:background="#00f"
android:layout_weight="1"
/>
<TextView
android:id="@+id/txt2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_margin="0dp"
android:background="#f0f"
android:layout_weight="1"
/>
<TextView
android:id="@+id/txt3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_margin="0dp"
android:background="#f00"
android:layout_weight="1"
/>
</LinearLayout>
<!-- Spacewaster: Bottom -->
<View
android:layout_width="fill_parent"
android:layout_height="0dp"
android:background="#0000"
android:layout_weight="43"
/>
</LinearLayout>
</RelativeLayout>
希望它有所帮助!