android.support.v7.widget.GridLayout
に2つの列があります。私はグリッドにフィールドを追加したいが、これに対して属性を指定する方法はわからない。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>
@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);
}
だから、どのようにこの場合の重量と幅を設定する(私はButterknife
を使用しています)の取り扱い私のボタン?
GridLayoutManagerでRecyclerViewを使用する... GridViewは、これ以上推奨される方法ではありません。 – shivamDev
元々は重量がサポートされていたとは思わない – jak10h
@shivamDevシンプルなフォームのオーバーヘッドになると思いました。そして、あなたはGridLayoutが非難されているリンクを共有できますか? –