2013-11-02 7 views
3

세로 모드에서 휴대 전화 또는 태블릿을 사용하는 경우 로고 및 메뉴 항목을 제한하는 ActionBar 아래에 탭이 표시됩니다. 가로 모드의 태블릿에서는 로고 및 메뉴 항목과 함께 인라인으로 표시됩니다. 이 구성에서는 선택 탭 아래의 밑줄이 손실됩니다.ActionBar 탭 스타일 (가로보기)

어떤 스타일이 이것을 제어합니까? 세로 모드에서 탭이 로고 및 메뉴와 나란히 표시 될 때 가로 모드와 다른 선택된 스타일을 사용하고 싶습니다.

내 테마는 부모가 Theme.AppCompat.Light으로 설정되어 있습니다. 그것에서 나는

<item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Silence</item> 
<item name="android:actionBarStyle">@style/ActionBar.Solid.Silence</item> 

android:actionBarTabStyle 내가이 state_selected 값을 볼

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> 
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_silence" /> 

    <!-- Focused states --> 
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_silence" /> 
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_silence" /> 

    <!-- Pressed --> 
    <!-- Non focused states --> 
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_silence" /> 
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_silence" /> 

    <!-- Focused states --> 
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_silence" /> 
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_silence" /> 
</selector> 

있는 당김으로 설정 android:background 값을 가지고 있습니다. 이 드로어 블 드로잉으로 설정된 이미지는 ActionBar 백그라운드와 다른 색이므로 같은 색의 배경 위에 볼 수 없습니다. actionBarStyle에 대한

스타일

<item name="android:background">@drawable/ab_solid_silence</item> 
<item name="android:backgroundStacked">@drawable/ab_stacked_solid_silence</item> 
<item name="android:backgroundSplit">@drawable/ab_bottom_solid_silence</item> 
<item name="android:progressBarStyle">@style/ProgressBar.Silence</item> 

세 첫 번째 사람은 이미지이며 progressBarStyle도 몇 가지 스타일을 포함을 포함,하지만 그들은 무관하다.

+0

다양한 API 레벨 (또는 어떤 버전의 동작을 보셨나요?)에 대해 이것을 확인하셨습니까? – Luksprog

+0

@Luksprog Android 4.1.2 및 4.3을 실행하는 기기 만 있습니다. 인라인 탭에서 완전히 다른 이미지를 사용하려면 어떻게해야합니까? – MikkoP

+1

'actionBarTabStyle'은 해당 선택자를 담당합니다. 탭이 인라인되어있을 때 탭 표시기가 사라지는 문제는 본 적이 없습니다. * 인라인 탭에 대해 완전히 다른 이미지를 사용하려면 어떻게해야합니까? * - 시스템에서 탭을 배치하는 방법을 선택하면 가로 방향으로 인라인으로 표시됩니다. 따라서'-land'에 대한 설정 식별자를 사용하고 테마를 원하는 selector로 변경할 수 있습니다. 나는 이것을 반대하는 것을 권하고 싶다. 나는 이것을하는 앱을 본 적이 없다고 확신한다. 사용자에게는 매우 직관적이다. – Luksprog

답변

-1

ActionBarTabStyle에 관심이 있습니다.

인라인 탭에 다른 이미지를 사용하려면 가로 모드를 나타내는 것으로 가정하고 가로 모드 용 사용자 지정 선택기를 만듭니다. 당신이 시도 할 수있는 옵션의 완전한 세트를 원하는 경우에

, http://jgilfelt.github.io/android-actionbarstylegenerator 은, 우편을 다운로드 자신의 PNG 파일로 생성 된 이미지를 대체이 체크 아웃하고 프로젝트에 스타일을 추가합니다.