0

我在我的測試Android應用程序中實現一個2x2網格(一個垂直和一個水平)的嵌套線性佈局,但我有問題使單元均勻填充整個屏幕。目前我手動將高度設置爲任意數字(150dp)。我怎樣才能修復它,並使網格單元之間的高度和寬度均勻分配?在Android中嵌套線性佈局以均勻分享高度和寬度

基本上我想要任何數量的可能的網格我有(2x3,3x3等)均勻分享屏幕? (。每一個surfaceView負責播放視頻我不得不使用網格佈局的一些問題)

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

    <LinearLayout 
     android:id="@+id/linearlayout_10" 
     android:layout_width="fill_parent" 
     android:layout_height="150dp" 
     android:orientation="horizontal" > 

     <SurfaceView 
      android:id="@+id/video_11_surfaceview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

     <SurfaceView 
      android:id="@+id/video_12_surfaceview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearlayout_11" 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:orientation="horizontal" > 

     <SurfaceView 
      android:id="@+id/video_21_surfaceview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

     <SurfaceView 
      android:id="@+id/video_22_surfaceview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 
    </LinearLayout> 

</LinearLayout> 
+2

我會建議使用GridLayout代替 – SillyFidget

+0

每個surfaceView負責播放視頻。使用網格佈局時遇到了一些問題。 –

回答

1

設置layout_weight爲內LinearLayout如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/linearlayout_0" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<LinearLayout 
    android:id="@+id/linearlayout_10" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:orientation="horizontal"> 

    <SurfaceView 
     android:id="@+id/video_11_surfaceview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 

    <SurfaceView 
     android:id="@+id/video_12_surfaceview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/linearlayout_11" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:orientation="horizontal"> 

    <SurfaceView 
     android:id="@+id/video_21_surfaceview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 

    <SurfaceView 
     android:id="@+id/video_22_surfaceview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 
</LinearLayout> 

這工作,但你可能想看看GridLayout

+0

這個工程!網格佈局將是理想的,因爲我會隨時更改單元的數量。但每個surfaceView都有責任播放視頻。我在快速測試中使用網格佈局時未播放視頻 –

相關問題