여기에서 유사한 질문을 많이 봤지만 도움이되지는 않습니다. 나는 다른 중첩 레이아웃의 계층 구조를 가지고 있으며 모두가 android:layout_width="fill_parent"
있고 가장 안쪽 레이아웃에는 android:layout_width="wrap_content
중앙 (가로)에 정렬해야합니다. 어떻게하나요?
업데이트 : : 문제의 원인을 찾았습니다-내부 LinearLayout을 RelativeLayout에 넣는 경우 android:layout_width="fill_parent"
여전히 내용을 래핑합니다. 그러나 TableRow는 실제로 화면을 채우고 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableRow >
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="2"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</TableRow>
</TableLayout>
</FrameLayout>
</LinearLayout>
답변
이 두 속성은 일반적으로 혼동됩니다.
android:gravity
사용되는 뷰의 콘텐츠 중력을 설정합니다.android:layout_gravity
부모를 기준으로 뷰 또는 레이아웃의 중력을 설정합니다 .
따라서 android:gravity="center"
부모 또는 android:layout_gravity="center"
LinearLayout 자체에 두십시오 .
나는 여러 번 그들을 섞어서 왜 사물이 제대로 중앙에 있지 않은지 궁금해했습니다.
답변
선형 레이아웃에서 이것을 시도하십시오
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
답변
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:orientation="horizontal"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="2"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</RelativeLayout>
relativeLayout을 LinearLayout보다 래핑하는 것을 고려하십시오. android:layout_centerHorizontal="true"
뷰 중심을 수평으로 배치합니다.
답변
layout_gravity="center"
또는 "center_horizontal"
부모 레이아웃에 추가 합니다.
참고로, a 는 이미 수평이므로 LinearLayout
내부 TableRow
가 불필요하게 보입니다 .TableRow
LinearLayout
답변
이 시도:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableRow >
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="2"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</TableRow>
</TableLayout>
</FrameLayout>
</LinearLayout>
답변
이것은 나를 위해 일했습니다 .. 빈보기 추가 ..
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal"
>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
/>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id" >
</com.google.android.gms.ads.AdView>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
답변
Try <TableRow android:gravity="center_horizontal">
This는 테이블 행 내에서 내부 LinearLayout을 중앙에 배치합니다.