我有一个简单的2x2网格布局。其中3个有红色,绿色和蓝色的视图。我希望它们在网格的单元格中居中对齐。我的布局如下所示,但即使我将所有视图的layout_gravity作为中心,视图也是左上角对齐的。我怎么能解决这个问题?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.elyeproj.griddrag.MainActivity">
<GridLayout
android:id="@+id/container_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2"
android:rowCount="2"
android:orientation="horizontal">
<View
android:id="@+id/view_red"
android:layout_height="100dp"
android:layout_width="100dp"
android:layout_gravity="center"
android:background="#ff0000" />
<View
android:id="@+id/view_green"
android:layout_height="100dp"
android:layout_width="100dp"
android:layout_gravity="center"
android:background="#00ff00" />
<View
android:id="@+id/view_blue"
android:layout_height="100dp"
android:layout_width="100dp"
android:layout_gravity="center"
android:background="#0000ff" />
</GridLayout>
</RelativeLayout>
答案 0 :(得分:1)
网格布局项目是换行的,因此您最好使用权重来根据需要正确对齐它们。 xml以下是你想要的:
var self=this;
if(!self._chMaxSize(self)){
dialogMsg("Max file is " + self.maxMb + "Mb", "Error", null);
return;
}
var msg="";
$.each(self.savingFiles, function(index, file) {
msg+="<br>Sending... " + file.name + " ";
var fd = new FormData();
fd.append("file", file);
fd.append("idRef", idRef);
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
percentComplete = parseInt(percentComplete * 100);
$("#msg").html(msg +percentComplete + "%");
}
}, false);
return xhr;
},
type: 'POST',
url: 'fileUpload.htm',
data: fd,
cache: false,
contentType: false,
processData: false,
success: function (data) {
msg+="<br> "+ data.result.msg;
$("#msg").html(msg);
$("#msg").addClass("ui-state-highlight");
}, error: function(data){
$("#msg").html("Transfer File Error.");
$("#msg").addClass("ui-state-error");
}
});
});
请参阅下面的链接,了解针对21以下的api使用linearlayout的其他解决方案: GridLayout (not GridView) how to stretch all children evenly
答案 1 :(得分:1)
嘿,只需将这些行添加到每个视图中。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
希望这会有所帮助。