선형 레이아웃에서 단추 가운데 맞춤
선형 레이아웃을 사용하여 예쁜 초기 화면을 표시하고 있습니다.화면 중앙에 수평 및 수직으로 배치되는 버튼이 하나 있습니다.하지만 제가 무엇을 시도하든 버튼이 중앙에 정렬됩니다.아래에 XML을 포함했는데, 누군가가 올바른 방향으로 나를 가리켜줄 수 있습니까?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
선형 레이아웃을 사용한 중심 맞추기:
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/findme" />
</LinearLayout>
화면 중앙에 항목을 배치하려면 사용하지 마십시오.LinearLayout
여러 항목을 한 줄에 표시하기 위한 것이기 때문입니다.
대신 를 사용합니다.
따라서 대체:
android:layout_gravity="center_vertical|center_horizontal"
해당하는RelativeLayout
옵션:
android:layout_centerInParent="true"
레이아웃 파일은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/findme"></ImageButton>
</RelativeLayout>
정의해 보셨습니까?android:gravity="center_vertical|center_horizontal"
레이아웃 및 설정 내부android:layout_weight="1"
이미지에?
선형 레이아웃에서 일반적으로 사용되는 방법은 이미지 버튼에 속성을 설정하는 것입니다.
android:layout_gravity="center"
선형 레이아웃에서 각 개체를 왼쪽 정렬, 가운데 정렬 또는 오른쪽 정렬 중 하나를 선택할 수 있습니다.위의 선은 정확히 다음과 같습니다.
android:layout_gravity="center_vertical|center_horizontal"
추가할 내용
android:gravity="center"
선형 레이아웃에 있습니다.
사용하는 경우LinearLayout
중력 중심을 추가할 수 있습니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
/>
</LinearLayout>`
이것으로 안심하고
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:visibility="visible"
android:gravity="center"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/pbEndTrip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="Gettings" />
</LinearLayout>
사용할 수 있습니다.RelativeLayout
.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity = "center"
android:background="@drawable/findme">
</ImageButton>
</LinearLayout>
위의 코드가 작동합니다.
Android:layout_gravity의 XML Attributes에 대한 Android 문서에 따르면, 우리는 쉽게 할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
내 기계에서 샘플이 완성되어 작동하고 있습니다...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity"
android:gravity="center"
android:textAlignment="center">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="My Apps!"
android:id="@+id/textView"
android:gravity="center"
android:layout_marginBottom="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:text="SPOTIFY STREAMER"
android:id="@+id/button_spotify"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:text="SCORES"
android:id="@+id/button_scores"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="LIBRARY APP"
android:id="@+id/button_library"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="BUILD IT BIGGER"
android:id="@+id/button_buildit"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="BACON READER"
android:id="@+id/button_bacon"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
<Button
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="CAPSTONE: MY OWN APP"
android:id="@+id/button_capstone"
android:gravity="center"
android:layout_below="@+id/textView"
android:padding="20dp"
/>
</LinearLayout>
부모 클래스의 자식 위치를 가운데로 지정하는 gravity="center" 특성을 사용하여 이 작업을 수행할 수 있습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center">
(레이아웃의 중앙에 만들기 위해)를 사용합니다.
android:layout_gravity="center"
및 사용
android:layout_marginBottom="80dp"
android:layout_marginTop="80dp"
위치를 바꾸다
참으로 설정 android:layout_alignParentTop="true"
그리고. android:layout_centerHorizontal="true"
버튼에서 다음과 같이 표시됩니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/switch_flashlight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/turn_on_flashlight"
android:textColor="@android:color/black"
android:onClick="action_trn"
android:background="@android:color/holo_green_light"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:padding="5dp" />
</RelativeLayout>
이 코드를 사용할 수도 있습니다.
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:orientation="horizontal"
android:weightSum="2.0"
android:background="@drawable/anyBackground" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:layout_weight="1" >
<ImageView
android:id="@+id/img_mail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/yourImage" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:layout_weight="1" >
<ImageView
android:id="@+id/img_save"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@drawable/yourImage" />
</LinearLayout>
</LinearLayout>
선형 레이아웃의 너비를 다음으로 설정할 수도 있습니다.wrap_content
및 사용android:layout_centerInParent
,android:layout_centerVertical="true"
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
>
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/findme"/>
이건 저한테 효과가 있어요.
android:layout_alignParentEnd="true"
이 경우 상대 레이아웃을 해당 이미지 버튼의 상위 항목으로 사용할 수도 있습니다.
android:layout_centerInParent="true"
그런 다음 이미지 버튼에서 위의 코드를 사용합니다.
이거 먹어봤어요?
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5px"
android:background="#303030"
>
<RelativeLayout
android:id="@+id/widget42"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
>
<ImageButton
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="map"
android:src="@drawable/outbox_pressed"
android:background="@null"
android:layout_toRightOf="@+id/location"
/>
<ImageButton
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="location"
android:src="@drawable/inbox_pressed"
android:background="@null"
/>
</RelativeLayout>
<ImageButton
android:id="@+id/home"
android:src="@drawable/button_back"
android:background="@null"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
/>
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5px"
android:orientation="horizontal"
android:background="#252525"
>
<EditText
android:id="@+id/searchfield"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/customshape"
/>
<ImageButton
android:id="@+id/search_button"
android:src="@drawable/search_press"
android:background="@null"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
/>
</LinearLayout>
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:apiKey="apikey" />
</TableLayout>
사용하다
Android:layout_centerHorizontal="true"
상대 레이아웃을 사용하는 것이 더 쉽지만 선형 레이아웃의 경우 대개 너비가 부모와 일치하는지 확인하여 중심을 맞춥니다.
android:layout_width="match_parent"
그에 따라 오른쪽과 왼쪽에 여백을 줍니다.
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
언급URL : https://stackoverflow.com/questions/1957831/center-a-button-in-a-linear-layout
'sourcetip' 카테고리의 다른 글
Spring boot에서 "ConditionalOnProperty is exclusive"를 어떻게 수정합니까? (0) | 2023.08.06 |
---|---|
AJAX 요청 후 위쪽으로 스크롤 중지 (0) | 2023.08.01 |
시스템.인수예외:테이블 형식 매개 변수에는 올바른 형식 이름이 있어야 합니다. (0) | 2023.08.01 |
여러 목록에 포함된 모든 값의 결합을 만드는 Pythonic 방법 (0) | 2023.08.01 |
NSURL 세션:URL 요청 시간을 늘리는 방법은 무엇입니까? (0) | 2023.08.01 |