2011-09-23 28 views
2

所有可用的空间,我想是这样的:使一个组件填补屏幕

enter image description here

但我不知道该如何调整的TextView因此它的屏幕上的所有可用空间,这是不由EditText或Buttons提供。我可以在代码或xml中执行它吗?

在XML我试图把TextView放入FrameLayout,但它没有区别。目前看起来像:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/consola" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:scrollbars = "vertical" 
      android:text="@string/hello"/> 

    </FrameLayout> 

    <EditText 
     android:id="@+id/comando" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

    <LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 

     <Button 
      android:text="Conectar" 
      android:id="@+id/boton_conectar" 
      android:layout_width="wrap_content" 
      android:layout_weight="0.5" 
      android:layout_height="wrap_content"> 
     </Button> 
     <Button 
      android:text="Enviar" 
      android:id="@+id/boton_enviar" 
      android:layout_width="wrap_content" 
      android:layout_weight="0.5" 
      android:layout_height="wrap_content"> 
     </Button> 
    </LinearLayout> 
</LinearLayout> 

在代码我只是检查按钮是否与听众推送。其中一个按下时,在EditText上获取文本,并将其附加到TextView。它工作,并且TextView变得更高,而EditText和Buttons减少一行。如果我继续追加行,最终的EditText和Buttons会跳出屏幕。我想避免这种行为,并完成将这3个小部件粘贴到屏幕的底部。

+0

什么@dmon说,再加上你可能想要查看[相对布局](http://developer.android.com/resources/tutorials/views/hello-relativelayout.html)以平滑您的视图层次结构 - Eclipse中的Android UI构建器越来越擅长猜测如何定位事物,还要检查相对布局支持的XML属性。 –

回答

2

使用android:layout_weight=1属性,如窗体底部的按钮。这将为它分配大部分空间,剩下的任何元素都留给它。

0

尝试android:fillViewport =“true”。

2

这都是关于重量。这应该给你想要的东西:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView android:text="TextView" 
     android:id="@+id/textView1" 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp"> 
    </TextView> 
    <EditText android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <requestFocus></requestFocus> 
    </EditText> 
    <LinearLayout android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <Button android:text="Button" 
      android:id="@+id/button1" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_width="0dp"> 
     </Button> 
     <Button android:text="Button" 
      android:id="@+id/button2" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_weight="1"> 
     </Button> 
    </LinearLayout> 
</LinearLayout> 

(旁注:当使用重量,相应的高度/宽度设置为0dp有时会周围的一些怪异的行为。)