如何将如下所示的线性布局转换为网格视图?所以基本上我需要它是3列和2行(横向)。也没有国界。
示例项目已上传 here 。
<script>
var removeId = null;
$(document).ready(function(){
$(".btn-remove").click(function(){
removeId = $(this).attr("data-id");
});
$("#yes_delete").click(function(){
$.ajax({
url: "edit_audits.php",
type: "POST",
data: "action=delete&auditID="+removeId,
success: function(){
$('#question_alert').modal('hide');
window.location.reload();
}
});
}
});
UPDATE:这是我的onCreate()方法和类中的初始化:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_2_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_3_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_4_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_5_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_6_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
答案 0 :(得分:5)
对我来说最简单的方法是使用嵌套的linearLayout
,如下所示(2x2)。我现在唯一的问题是我不知道如何设置水平布局的高度恰好是屏幕高度的一半!
有人有任何想法吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_2_surfaceview"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<SurfaceView
android:id="@+id/video_3_surfaceview"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_4_surfaceview"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
试试这个例子,看看它是如何运作的。
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/grid_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3"
android:rowCount="2"
android:orientation="horizontal">
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_2_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_3_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_4_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_5_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_6_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</GridLayout>
答案 2 :(得分:1)
该概念是为行创建linearLayout并为列创建另一个linearLayout以添加它。在onCreate方法
中添加此代码 int column = 3;
int row = 4;
RelativeLayout relativeLayout = (RelativeLayout) findViewById(Your RelativeLayout_in_main_activity_id);
LinearLayout rowLayout = new LinearLayout(this);
rowLayout.setOrientation(LinearLayout.VERTICAL);
relativeLayout.addView(rowLayout);
for (int i = 0; i<row;i++) {
LinearLayout columnLayout = new LinearLayout(this);
columnLayout.setOrientation(LinearLayout.HORIZONTAL);
for (int j = 0; j<column;j++) {
TextView textView = new TextView(this);
columnLayout.addView(textView );
}
rowLayout.addView(columnLayout);
}
希望这个答案是你想要的。
答案 3 :(得分:1)
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/grid_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3"
android:rowCount="2">
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="0"
android:layout_row="0" />
<SurfaceView
android:id="@+id/video_2_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="1"
android:layout_row="0" />
<SurfaceView
android:id="@+id/video_3_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="2"
android:layout_row="0" />
<SurfaceView
android:id="@+id/video_4_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="0"
android:layout_row="1" />
<SurfaceView
android:id="@+id/video_5_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="1"
android:layout_row="1" />
<SurfaceView
android:id="@+id/video_6_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_column="2"
android:layout_row="1" />
答案 4 :(得分:0)
由于内部实现(a set of infinitely thin lines that separate the viewing area into cells),GridLayout可能无法正常工作。尝试使用旨在高效显示视图的容器,例如RecyclerView或其新表兄,例如HorizontalGridView或VerticalGridView,您可以为后者找到一组有用的示例{ {3}}
答案 5 :(得分:0)
请检查一下。首先在 MainActivity 中或您想要的任何位置定义网格视图。然后制作 custom_layout
活动类 中的GridView
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:clickable="true"
android:columnWidth="170dp"
android:drawSelectorOnTop="true"
android:focusable="true"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" />
立即创建布局。 在该布局中,您可以放置图像视图或表面视图,无论您想要什么
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="170dp"
android:layout_height="130dp"
/>
只有一个 就够了
现在创建 AdapterClass 并为您的自定义布局充气。那是 如果您还有任何问题,请告诉我。