我尝试使用左右按钮创建标题,并在中间创建一个标题,按钮右侧有一个按钮(允许选择内容)。布局应该是:
|<Button> <TextView><Button> <Button>|
如果标题很长,它应该是椭圆形的。为此,看起来textview需要layout_weight,如this solution中所示,否则它会将正确的按钮从屏幕上移开。但是,为textview设置layout_weight会将中心按钮向右推:
|<Button> <TextView> <Button><Button>|
现在的布局是:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:text="Hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:text="Testing"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:singleLine="true"
android:layout_weight="1"
android:gravity="center"
android:ellipsize="end"
android:inputType="text"
/>
<Button
android:text="Hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:text="Hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
[编辑]尝试FunkTheMonk的方法并不是很有效,因为如果字符串很长,最终会将中心按钮从布局中推出:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:text="Hello1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="center"
android:layout_weight="1"
>
<TextView
android:text="Testing a very long text to see how it works how do you like me now this is still longer yet"
android:layout_margin="3dp"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:singleLine="true"
android:gravity="center"
android:ellipsize="end"
android:inputType="text"
/>
<Button
android:text="Hello2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<Button
android:text="Hello3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
答案 0 :(得分:0)
我不是100%肯定你的意思。但我想我明白了。一个简单的方法是使用tablerow和android:layout_marginLeft&amp;右。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:layout_gravity="left|top"></Button>
<TextView android:inputType="text" android:gravity="center"
android:ellipsize="end" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Testing"
android:singleLine="true"
android:layout_marginLeft="57dp"></TextView>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_gravity="center"
android:text="Hello"
android:layout_marginRight="57dp"></Button>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:layout_gravity="right|top"></Button>
</TableRow>
</LinearLayout>
答案 1 :(得分:0)
在自己的水平线性布局中添加TextView和Button,并在其上设置权重。将此新线性布局的重力设置为中心,文本视图和按钮将在两个外部按钮之间的可用空间中居中。
如果标题很长,文本视图将占用尽可能多的空间,然后才能在线性布局中占据空间。