을 존중하지 않습니다. 이것은 내가 사용하는 코드입니다 :프로그래밍 추가의 TableView 내가 <strong>TableLayout을</strong> 내가 프로그래밍 그 무게 "센터"입니다 수직 <strong>의 LinearLayout</strong>에 추가하려고 레이아웃 리소스로 정의되어 그 중력
LayoutInflater inflater = getLayoutInflater();
LinearLayout ll = (LinearLayout) findViewById(R.id.testLinearLayout);
TableLayout myTable = (TableLayout) inflater.inflate(R.layout.table2x2, null);
ll.addView(myTable);
myTable에 대신 중심에있는의, 그것은 수직 중심으로 왼쪽으로 정렬있어 추가됩니다. 프로그래밍 방식으로 추가하는 대신 동일한 코드를 사용합니다. TableLayoutLinearLayout 가운데 중력을 존중합니다. 내가 뭔가를 놓치고 있어야한다는 것을 알고 있지만, 나는 그것을 알아낼 수 없다.
있는 LinearLayout : 그것이 수평 레이아웃의 일부이기 때문에
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/testLinearLayout"
android:layout_weight="1"
android:gravity="center">
</LinearLayout>
그것은 무게를 가지고있다.
TableLayout을 :
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:text="\"
android:id="@+id/textView2x2_o"
android:gravity="center" />
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:id="@+id/textView2x2_c0"
android:gravity="center" />
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:text="1"
android:id="@+id/textView2x2_c1"
android:gravity="center" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:id="@+id/textView2x2_r0"
android:gravity="center" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="0"
android:id="@+id/textView2x2_0"
android:gravity="center" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="0"
android:id="@+id/textView2x2_1"
android:gravity="center" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:text="1"
android:id="@+id/textView2x2_c2"
android:gravity="center" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="0"
android:id="@+id/textView2x2_4"
android:gravity="center" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="0"
android:id="@+id/textView2x2_5"
android:gravity="center" />
</TableRow>
</TableLayout>
의미가 있습니다 ! LinearLayout을 두 개의 인수 메소드를 사용하여 루트로 지정하려고 시도했지만 응용 프로그램이 손상되었습니다. 그 설명에 대한 링크를 특별히 고맙습니다! – cthulhufhtagn
아마 세 번째 매개 변수로 true를 전달했습니다. 세 번째 매개 변수는 뷰를 루트에 첨부할지 여부를 알려줍니다. 이를 true로 설정하고 뷰를 추가하려고하면 뷰에 이미 상위가 있음을 알리는 예외가 발생합니다. 즉, true를 전달하면 addView를 제거해야하며, false를 전달하면 addView를 호출해야합니다. –