1

私は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>
4

2 に答える 2

1

あなたのコードは素晴らしく、完璧です。あなたが示した問題は、マニフェストに Theme.Holo を追加したため、下位の API でのみ発生します。これは、古い API では奇妙に機能します。

とにかくカスタム LAF を使用しているため、最も簡単な解決策: マニフェストで Theme.Holo を Theme.Black に置き換えます。

于 2013-08-17T13:39:55.133 に答える