20

したがって、次のようなアクティビティが 1 つあります。

http://i.imgur.com/UzexgEA.jpg

ご覧のとおり、ボタン、リスト、ボタンがあります。

特定の条件が満たされている場合は、リストを表示するだけで両方のボタンを非表示にしたいのですが、次の画像でわかるように、ボタンはまだスペースを占有しています:

http://i.imgur.com/OyLIfSk.jpg

だから私の質問、リストを拡大してそのスペースを取り除くにはどうすればよいですか?

ボタンとリストの私のレイアウトは次のとおりです。

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

    <Button
        android:id="@+id/findSelected"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="registrarAsistencia"
        android:text="Registrar Asistencia" />

    <ListView
        android:id="@+id/listaAlumnos"
        android:layout_width="fill_parent"
        android:layout_height="376dp"
        android:layout_weight="2.29" />

    <Button
        android:id="@+id/btnChecarBoxes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="seleccionarTodosNinguno"
        android:text="Seleccionar / Deseleccionar todo" />
</LinearLayout>

リストのコンテンツのレイアウトは次のとおりです。

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

  <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_alignParentLeft="true"
      android:layout_alignParentTop="true"
      android:orientation="vertical" >

      <TextView
          android:id="@+id/rowTextView"
          android:layout_width="wrap_content"
          android:layout_height="match_parent"
          android:padding="10dp"
          android:textSize="16sp" 
          android:textStyle="bold"/>

      <TextView
          android:id="@+id/rowTextView2"
          android:layout_width="wrap_content"
          android:layout_height="match_parent"
          android:padding="10dp"
          android:textSize="16sp" 
          android:textStyle="italic"/>

  </LinearLayout>

  <CheckBox
      android:id="@+id/CheckBox01"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:focusable="false"
      android:padding="10dp" />
</RelativeLayout>
4

4 に答える 4

74

ボタンは作りませんView.INVISIBLE。ボタンを作りますView.GONE。次の 3 つの表示状態があります。

  • 見える(正常)
  • 非表示 (ピクセルは描画されませんが、スペースを占有します)
  • なくなりました (レンダリングには含まれません)
于 2013-09-10T00:20:35.193 に答える
1

使用する

android:layout_height="0dp"
android:layout_weight="1"

@CommonsWareの回答に加えて

すべての画面サイズに適合するレイアウトを使用する必要があります。レイアウトに固定の高さを指定android:layout_height="376dp"すると、テストしているデバイス (またはエミュレーター) でのみ見栄えがよくなります。あなたがしなければならないことは、リストビューがボタンによって残されたすべての(そして唯一の)スペースを占めるようにすることです。

この記事とこの回答をチェックして、レイアウトの重みをよりよく理解してください。

于 2013-09-10T00:24:54.953 に答える
0

ウィジェットを非表示にする

   yourEditText.setVisibility(View.GONE)

あなたのウィジェットの可視性のために

   yourEditText.setVisibility(View.VISIBLE)
于 2017-07-22T07:33:30.540 に答える