0

我有一个嵌套的权重,这对于pefrormance很糟糕的布局。 如何制作计算器键盘(例如没有重量的计算器键盘),但是在不给予固定“sp”或“dp”大小的情况下节省按钮大小,无论屏幕上的分辨率如何,都必须缩放键盘实现键盘布局,没有嵌套的重量和固定的尺寸在xml

,我发现这里的解决方案CommonsWare answer这里Che Jame answer

但为什么他们说:“使用Android:layout_weight =”键上的两个” 1" Eclipse的说我必须得到权重的芦苇... 是还有其他解决方案吗?或者在android平台上不可能? 这里是我有它使用嵌套的权重,而代码如下

我要救这个观点,但bithout嵌套的权重和按钮必须是相同的大小,更大然后“包装内容”参数

感谢您的任何建议。

<LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="0sp" 
         android:layout_weight="1" 
         android:orientation="vertical" > 

         <LinearLayout 
          android:layout_width="match_parent" 
          android:layout_height="0sp" 
          android:layout_weight="1" 
          android:orientation="horizontal" > 

          <Button 
           android:id="@+id/cashcount_form_button1" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_1" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button2" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_2" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button3" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_3" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 
         </LinearLayout> 

         <LinearLayout 
          android:layout_width="fill_parent" 
          android:layout_height="0sp" 
          android:layout_weight="1" 
          android:orientation="horizontal" > 

          <Button 
           android:id="@+id/cashcount_form_button4" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_4" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button5" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_5" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button6" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_6" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 
         </LinearLayout> 

         <LinearLayout 
          android:layout_width="match_parent" 
          android:layout_height="0sp" 
          android:layout_weight="1" 
          android:orientation="horizontal" > 

          <Button 
           android:id="@+id/cashcount_form_button7" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_7" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button8" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_8" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button9" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_9" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 
         </LinearLayout> 

         <LinearLayout 
          android:layout_width="match_parent" 
          android:layout_height="0sp" 
          android:layout_weight="1" 
          android:orientation="horizontal" > 

          <Button 
           android:id="@+id/cashcount_form_comma_button" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_comma" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 

          <Button 
           android:id="@+id/cashcount_form_button0" 
           android:layout_width="0dp" 
           android:layout_height="fill_parent" 
           android:layout_weight="1" 
           android:text="@string/cashcount_key_0" 
           android:textAppearance="?android:attr/textAppearanceLarge" 
           android:textColor="@color/white" 
           android:textSize="35sp" 
           android:textStyle="bold" /> 
         <Button 
          android:id="@+id/cashcount_form_delete_button" 
          android:layout_width="0dp" 
          android:layout_height="match_parent" 
          android:layout_weight="1" 
          android:drawableStart="@drawable/ic_action_back_sign_image_view" 
          android:textAppearance="?android:attr/textAppearanceLarge" 
          android:textColor="@color/white" 
          android:textSize="35sp" 
          android:textStyle="bold" /> 
        </LinearLayout> 

       </LinearLayout> 

回答

0

suggested由Android LinearLayouts应由RelativeLayout的或GridLayout的来代替。在大多数情况下,RelativeLayout就足够了,但在这种情况下GridLayout可以派上用场。你可以写下类似于下面的代码来实现你想要的东西:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:columnCount="4" 
    android:orientation="horizontal" > 

    <Button 
     android:layout_column="3" 
     android:text="/" /> 

    <Button android:text="1" /> 

    <Button android:text="2" /> 

    <Button android:text="3" /> 

    <Button android:text="*" /> 

    <Button android:text="4" /> 

    <Button android:text="5" /> 

    <Button android:text="6" /> 

    <Button android:text="-" /> 

    <Button android:text="7" /> 

    <Button android:text="8" /> 

    <Button android:text="9" /> 

    <Button 
     android:layout_gravity="fill" 
     android:layout_rowSpan="3" 
     android:text="+" /> 

    <Button 
     android:layout_columnSpan="2" 
     android:layout_gravity="fill" 
     android:text="0" /> 

    <Button android:text="00" /> 

    <Button 
     android:layout_columnSpan="3" 
     android:layout_gravity="fill" 
     android:text="=" /> 

</GridLayout>