查看未在Android中的相对布局中显示

时间:2014-06-13 08:50:49

标签: android layout view show

我已经发布了这个,但我得到了可以帮助你帮助我的新信息...... 我有这个布局的问题,我不知道有什么问题。正如您所看到的,相对布局中有一个天文台和一个桌子,但是天文台没有显示,甚至没有空白。

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/firstLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Chronometer
    android:id="@+id/chrono"
    android:textColor="#4169E1"
    android:textSize="20sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Chronometer"
/>
<TableLayout 
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
</TableLayout>
</RelativeLayout>

所以我试着改变计时器和tablelayout的顺序。我也试过改变layout_width和layout_height属性,但我什么都没得到。所以我去了我的java课程,我发现问题可能在这里:

 private final void createGameBoard(short gridSize) {
  DisplayMetrics metrics = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(metrics);

  TableLayout tableLayout;
  tableLayout = (TableLayout) findViewById(R.id.parentLayout);    
  tableLayout.removeAllViews();

  board = GameBoard.createGameBoard(this, 
        bitmap, 
        tableLayout,
        (int) (metrics.widthPixels * metrics.density),
        (int) ((metrics.heightPixels * metrics.density)-h1),
        gridSize);
}

GameBoard.createGameBoard是:

public static GameBoard createGameBoard(Context context, 
                             Bitmap bitmap, 
                             TableLayout parentLayout,
                             int width,
                             int height,
                             short gridSize) {

  board = new GameBoard(context, 
                   bitmap, 
                   parentLayout, 
                   width, 
                   height, 
                   gridSize);

  return board;
}

所以我猜测显示计时器的问题来自于游戏板的创建,因为从当前窗口获取的指标用于设置游戏板的高度。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的xml代码:

<Chronometer
    android:id="@+id/chrono"
    android:textColor="#4169E1"
    android:textSize="20sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Chronometer"
/>
<TableLayout 
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>

这将强制TableLayout以全屏显示,因此,Chronometer被隐藏。

尝试更改以下内容之一:

1)

<Chronometer
    android:id="@+id/chrono"
    android:textColor="#4169E1"
    android:textSize="20sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Chronometer"
/>
<TableLayout 
    android:id="@+id/parentLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
>

这将包装表的内容,因此Chronometer将获得空间。

2)。

<Chronometer
    android:id="@+id/chrono"
    android:textColor="#4169E1"
    android:textSize="20sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Chronometer"
/>
<TableLayout 
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/chrono"
>

这将强制Chronometer在显示表格布局后占用表格布局下方的全部空间。

希望这有帮助。