我有android.support.v7.widget.GridLayout
有两列。我想将字段添加到网格,但不知道如何为此指定属性。如何指定GridLayout的嵌套元素的重量和宽度
我的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
tools:context="com.mappolygon.PolygonDialogFragment">
<android.support.v7.widget.GridLayout
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
app:columnCount="2">
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_lat1"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_lat1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/latitude_1"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_long1"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_long1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/longitude_1"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_lat2"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_lat2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/latitude_2"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_long2"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_long2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/longitude_2"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_lat3"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_lat3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/latitude_3"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_long3"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_long3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/longitude_3"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_lat4"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_lat4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/latitude_4"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/layout_long4"
android:layout_width="0dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/et_long4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/longitude_4"
android:inputType="numberDecimal|numberSigned" />
</android.support.design.widget.TextInputLayout>
</android.support.v7.widget.GridLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add_coordinates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_add" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_build_polygon"
style="@style/Base.Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="@string/build_polygon" />
<Button
android:id="@+id/btn_cancel"
style="@style/Base.Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel" />
</LinearLayout>
</LinearLayout>
我的按钮操作(我使用Butterknife
)
@Bind({R.id.et_lat1, R.id.et_long1, R.id.et_lat2, R.id.et_long2, R.id.et_lat3, R.id.et_long3, R.id.et_lat4, R.id.et_long4})
List<EditText> coordinatesList;
@Bind({R.id.layout_lat1, R.id.layout_long1, R.id.layout_lat2, R.id.layout_long2, R.id.layout_lat3, R.id.layout_long3, R.id.layout_lat4, R.id.layout_long4})
List<TextInputLayout> inputLayoutList;
@Bind(R.id.grid)
GridLayout gridLayout;
**...**
@OnClick(R.id.fab_add_coordinates)
void addFields(){
TextInputLayout inputLayoutLat = new TextInputLayout(getActivity());
TextInputLayout inputLayoutLng = new TextInputLayout(getActivity());
EditText editTextLat = new EditText(getActivity());
EditText editTextLng = new EditText(getActivity());
inputLayoutLat.addView(editTextLat);
inputLayoutLng.addView(editTextLng);
coordinatesList.add(editTextLat);
coordinatesList.add(editTextLng);
inputLayoutList.add(inputLayoutLat);
inputLayoutList.add(inputLayoutLng);
gridLayout.addView(inputLayoutLat);
gridLayout.addView(inputLayoutLng);
}
那么,如何设置权重和宽度在这种情况下?
使用RecyclerView和GridLayoutManager ... GridView不再是推荐的方法。 – shivamDev
我不认为最初支持体重 – jak10h
@shivamDev我认为这将是简单形式的开销。你能分享一个GridLayout被弃用的链接吗? –