我很确定我以前做过这件事,但我忘了怎么做。
这是问题所在: 我有一个按钮和一个textview,我希望textview居中,而按钮在左侧。
没问题?只需将它们放在relativelayout中,使textview centerinparent,按钮alignparentleft。
但是现在我要动态更改文本,因此它可能会写在按钮之上!我只需在textview上添加toRightOf =“@ id / button”。不,现在它不再集中。
我希望我能提供截图,但似乎计算机内存不足,无法做到。
以下是一些代码:http://pastebin.com/3N70Vjre(因为我无法粘贴xml ......?)
<RelativeLayout
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<Button
android:id="@+id/leftbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="text!"
/>
<TextView
android:id="@+id/toptext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_toRightOf="@id/leftbutton"
android:layout_centerInParent="true"
android:textSize="16sp"
android:textStyle="bold"
android:text="Text!"
android:singleLine="true"
/>
</RelativeLayout>
答案 0 :(得分:3)
试试这个(不幸的是我在工作,所以不能跳进Eclipse来获取代码) -
这应该将TextView的文本置于Button之后,尽管它不会使TextView本身居中。您可以通过使用容器(线性/相对布局)替换TextView并在布局而不是TextView上执行与上面相同的方法来实现此目的。然后,您可以将TextView放入容器中,并将容器的重力设置为“居中”。
希望这有助于指明您正确的方向:)
答案 1 :(得分:0)
首先尝试声明TextView,然后将按钮对齐到文本视图的左侧。请记住,如果TextView变得太宽,可能会遇到问题。
编辑:我明白了,所以你试图做一些类似iPhone的标题,带有后退/下一个按钮(无论如何都是类似的)。试试这个修改。我仍然相信,如果TextView变得足够大以击中Button,你会遇到问题。 <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
>
<TextView
android:id="@+id/toptext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_alignParentCenter="true"
android:textSize="16sp"
android:textStyle="bold"
android:text="Text!"
android:singleLine="true"
/>
<Button
android:id="@+id/leftbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="text!"
/>
</RelativeLayout>
请尝试使用此FrameLayout。这可能会做更多你期望的事情:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/toptext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold"
android:text="Text!"
android:singleLine="true"
/>
<Button
android:id="@+id/leftbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text!"
/>
</FrameLayout>
答案 2 :(得分:0)
你可以尝试这个(伪代码):
<RelativeLayout>
<Button>
<LinearLayout toLeftOf="toptext" type="horizontal">
<TextView gravity="center">
</LinearLayout>
</RelativeLayout>
您可能必须将LinearLayout设为width =“fill_parent”。不确定这是否有效。您可以随后尝试此处列出的一些内容:http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/