지도의 확대 / 축소 컨트롤을 화면 오른쪽 하단에 배치하려고합니다. alignParentBottom="true"
및 둘 다 사용하여 RelativeLayout으로 할 수 alignParentRight="true"
있지만 Framelayout을 사용 하면 그러한 속성을 찾지 못했습니다. 화면 오른쪽 하단에 어떻게 정렬합니까?
지도의 확대 / 축소 컨트롤을 화면 오른쪽 하단에 배치하려고합니다. alignParentBottom="true"
및 둘 다 사용하여 RelativeLayout으로 할 수 alignParentRight="true"
있지만 Framelayout을 사용 하면 그러한 속성을 찾지 못했습니다. 화면 오른쪽 하단에 어떻게 정렬합니까?
답변:
실제로 다른 답변에서 말한 내용에도 불구하고 가능합니다. 당신이있는 경우 FrameLayout
, 그리고 바닥에 자식 항목을 배치하려면, 당신은 사용할 수 android:layout_gravity="bottom"
와의 바닥에 그 아이를 정렬려고하고있다 FrameLayout
.
나는 그것을 사용하고 있기 때문에 그것이 작동한다는 것을 알고 있습니다. 늦었다는 것을 알고 있지만 Google에서 상위 순위에 있기 때문에 다른 사람들에게 유용 할 수 있습니다.
나는 또한이 상황에 직면하여 FrameLayout을 사용하여 수행하는 방법을 알아 냈습니다. 다음 출력은 아래 주어진 코드에 의해 생성됩니다.
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/contactbook_icon"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="140"
android:textSize="12dp"
android:textColor="#FFFFFF"
android:layout_gravity="bottom|right"
android:layout_margin="15dp" />
</FrameLayout>
여백 값을 변경하여 이미지 위의 텍스트 위치를 조정합니다. 여백을 제거하면 텍스트가 때때로보기에서 벗어날 수 있습니다.
다음을 사용하여 달성 할 수 있습니다. RelativeLayout
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:src="@drawable/icon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
wrap_content
에서 사용 하는 경우 작동하지 않습니다 RelativeLayout
. 어쨌든 RelativeLayout은 전체 화면에서 크기가 조정 되었기 때문입니다.
자바 코드로 시도하고 싶다면. 여기 있습니다-
final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
yourView.setLayoutParams(params);
params.gravity = Gravity.BOTTOM; // set gravity
FrameLayout에 보이지 않는 TextView를 추가 할 수 있습니다.
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/daily_delete_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="DELETE"
android:layout_gravity="center"/>
<Button
android:id="@+id/daily_save_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="SAVE"
android:layout_gravity="center"/>
</LinearLayout>
안드로이드 스튜디오 activity.xml 페이지의 제약 위젯을 사용하여이를 수행하는 방법은 많습니다.
가장 일반적인 두 가지 방법은 다음과 같습니다.
FrameLayout으로는 할 수 없습니다.
사양에서 :
http://developer.android.com/reference/android/widget/FrameLayout.html
"FrameLayout은 단일 항목을 표시하기 위해 화면의 영역을 차단하도록 설계되었습니다. FrameLayout에 여러 하위 항목을 추가 할 수 있지만 모든 하위 항목은 화면 왼쪽 상단에 고정됩니다."
RelativeLayout을 사용하지 않는 이유는 무엇입니까?