我有一个带有4个按钮的布局(我试图获得相同的大小)。问题是我不希望我的第一个按钮上的文字被椭圆化。我尝试了很多东西:将ellipsize属性设置为" none",将singleLine属性设置为false,切断填充,没有一个工作。
在eclipse图形布局中一切看起来都很好,但是当我在真实设备上试用它时,无论屏幕有多大,都会出现上述问题。 起初,我认为这是因为填充(我在.xml中为按钮定义了自定义背景,我在该形状上使用了填充)。但是,删除它们不起作用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:gravity="center"
android:background="@drawable/gradient_bkg"
tools:context=".StartActivity" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TableRow android:layout_weight="1.0">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:gravity="center">
<Button
android:id="@+id/random_words"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:layout_weight="1.0"
android:background="@drawable/button_sexy"
android:text="Random two words"
android:drawableLeft="@drawable/drinks"/>
<Button
android:id="@+id/no_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_weight="1.0"
android:background="@drawable/button_sexy"
android:text="No data"
android:drawableLeft="@drawable/body_data" />
</LinearLayout></TableRow>
<TableRow android:layout_weight="1">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center" >
<Button
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="15dp"
android:layout_weight="1"
android:background="@drawable/button_sexy"
android:text="Result"
android:drawableLeft="@drawable/results" />
<Button
android:id="@+id/reset"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_weight="1"
android:background="@drawable/button_sexy"
android:text="Reset"
android:drawableLeft="@drawable/reset"/>
</LinearLayout>
</TableRow>
</TableLayout>
</RelativeLayout>
答案 0 :(得分:1)
您的代码非常棒且完美。您指出的问题仅适用于较低的API,因为您在清单中添加了一个Theme.Holo,这对于较旧的API来说很奇怪。
最简单的解决方案,因为您无论如何都在使用自定义LAF:在您的清单中将Theme.Holo替换为Theme.Black。
答案 1 :(得分:-1)
我认为问题与你在布局的这么多层次上使用wrap_content有关。我已经看到,这会导致单个项目有时会变得聪明,并且会以不正常的方式自动调整错误或处于leas状态。尝试将按钮放在顶层布局上,以测试在使用match_parent时是否可以获得正确的行为。
但最后,使用wrap_content和match_parent的组合可能会耗费大量时间。一个快速的方法可能是将按钮设置为固定大小,但请确保将它们设置得比您想象的要大一些,以确保它可以在许多不同的屏幕尺寸上工作。