2012-05-23 33 views
2

这是我的布局,尽管我已经为布局中的其他一个窗口小部件设置了权重,但它并不是该窗口底部的2个按钮的消息按钮(messageText小部件)。我究竟做错了什么?谢谢。嵌套的权重对性能不利

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_marginTop="10dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_marginLeft="10dip" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/status_label" 
     android:textStyle="bold" 
     android:textSize="20dip" 
     android:textColor="#FEFF80"/> 
    <TextView 
     android:id="@+id/statusText" 
     android:layout_marginLeft="10dip" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/unsent" 
     android:textSize="20dip" 
     android:textColor="#FEFF80"/> 
</LinearLayout> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_marginTop="10dip" 
    android:layout_height="1dip" 
    android:background="#FEFF80"/> 
<TextView 
    android:layout_marginTop="10dip" 
    android:layout_marginLeft="11dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/message_number_caption" 
    android:textSize="15dip"/> 
<EditText 
    android:id="@+id/messageNumber" 
    android:inputType="phone" 
    android:layout_marginTop="10dip" 
    android:layout_marginLeft="10dip" 
    android:layout_marginRight="10dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 
<TextView 
    android:layout_marginTop="30dip" 
    android:layout_marginLeft="11dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/message_text_caption" 
    android:textSize="15dip"/> 
<EditText android:inputType="text" 
    android:id="@+id/messageText" 
    android:layout_marginTop="10dip" 
    android:layout_marginLeft="10dip" 
    android:layout_marginRight="10dip" 
    android:layout_weight="1.0" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip"/> 
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_marginTop="10dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <Button 
     android:id="@+id/sendButton" 
     android:layout_marginLeft="10dip" 
     android:layout_marginRight="10dip" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="@string/send_button_label" 
     android:textSize="15dip"/> 
    <Button 
     android:id="@+id/resetButton" 
     android:layout_marginLeft="10dip" 
     android:layout_marginRight="10dip" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="@string/reset_button_label" 
     android:textSize="15dip"/> 
</LinearLayout> 
</LinearLayout> 

回答

2

你指定的编辑文本(@ + ID/MessageText中),重量为1 - 你的意思做,因为这样的线性布局中的其他部件没有重量?

然后在下面,你有一个linearlayout与两个按钮,使用合理的权重。

N.B.这是一个相当简单的布局,所以你可能没问题。如果你有更多的布局和小部件的层次结构,那么你会更容易看到一个缓慢的下降。

3

你没有做错什么,只是一个警告。 Android视图引擎解释您的XML并构建视图对象。谷歌已经决定在布局内部嵌套权重(也就是android:layout_weight属性的视图),在另一个布局内导致视图引擎执行效果不佳,他们建议您不要这样做。

如果还有另一种方法可以实现不使用andorid:layout_weight属性的布局,那么最好这样做。否则,您的视图可能会稍微加载一点。