[android] Android : BOTTOM의 탭
나는 이것에 대해 약간의 대화를 보았지만 명확한 것은 없습니다. TabWidget의 탭을 화면 하단에 배치하는 방법이 있습니까? 그렇다면 어떻게?
다음을 시도했지만 작동하지 않았습니다.
a) 프레임 레이아웃 아래에 탭 위젯
설정 b) 탭 위젯의 중력을 “아래쪽”으로 설정
감사! llappall
답변
화면 하단에 탭을 표시하는 가장 간단하고 강력하며 확장 가능한 솔루션입니다.
- 수직 LinearLayout에서 FrameLayout을 TabWidget 위에 놓습니다.
- 설정
layout_height
에wrap_content
FrameLayout이와 TabWidget 모두 - FrameLayout의 설정
android:layout_weight="1"
- TabWidget 설정
android:layout_weight="0"
(0은 기본값이지만 강조, 가독성 등) - TabWidget을 설정하십시오
android:layout_marginBottom="-4dp"
(하단 분배기를 제거하기 위해)
전체 코드 :
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_weight="1"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_marginBottom="-4dp"/>
</LinearLayout>
</TabHost>
답변
시도해보십시오.) 스크롤 할 때 처리 방법을 모르기 때문에 FrameLayout (@ id / tabcontent)의 내용을 봅니다. 내 경우에는 ListView를 탭의 내용으로 사용했기 때문에 작동합니다. . 🙂 그것이 도움이되기를 바랍니다.
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_above="@android:id/tabs" />
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</RelativeLayout>
</TabHost>
답변
줄을 제거하는 방법이 있습니다.
1)이 튜토리얼을 따르십시오 :
android-tabs-with-fragments
2) 그런 다음 Leaudro가 위에서 제안한 RelativeLayout 변경 사항을 적용하십시오 (레이아웃 소품을 모든 FrameLayouts에 적용하십시오).
항목 # 1의 tab.xml에 ImageView를 추가하고 탭과 같은 모양의 iPhone을 얻을 수도 있습니다.
여기 내가 지금하고있는 일의 스크린 샷이 있습니다. 나는 여전히 아이콘을 선택하고 수평 분포를 동일하게 유지하기 위해 할 일이 있지만 아이디어를 얻습니다. 필자의 경우 조각을 사용하고 있지만 동일한 주체가 표준 탭보기에 적용되어야합니다.
답변
모든 버전의 Android (특히 사용자 정의 UI 기능이있는 버전)에서 작동하는지 확실하지 않지만 하단에 회색 막대를 제거 할 수있었습니다.
android:layout_marginBottom="-3dp"
TabWidget XML로 …
답변
tabWidget의 구분선을 제거하려는 모든 사람들을 위해 여기에 탭을 사용자 정의하고 탭이 맨 아래에있을 때 문제를 제거하는 데 도움이되는 예제 프로젝트 (및 해당 자습서)가 있습니다. 이클립스 프로젝트 : android-custom-tabs ; 원래 설명 : 블로그 ; 이것이 도움이 되었기를 바랍니다.
답변
답변
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="#252a31"
android:tabStripEnabled="false" >
</TabWidget>
</LinearLayout>
</TabHost>