2013-10-29 2 views
1

사용자 지정 작업 표시 줄 here을 생성했으며 탭을 제외한 모든 항목이 작동합니다. 탭 표시기와 탭 배경색은 무엇이든 상관없이 동일하게 유지됩니다.탭 표시기 색을 변경하려고합니다

tab_indicator_ab_recorder.xml 파일 :

<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="@drawable/tab_unselected_recorder" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_recorder" /> 

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

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

<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_recorder" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_recorder" /> 
이 문서를 Accourding, 나는이 XML 파일 탭 레이아웃의 배경 속성을 재정의해야합니다. 하지만 어떻게해야합니까? 나는 이것을 시도했다 :

<TabWidget 
    android:id="@android:id/tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/tab_indicator_ab_recorder"/> 

그러나 이것은 효과가 없다. 어떤 생각을 어떻게하면 해결할 수 있을까요?

답변

1

예를 tab_selected_recorder.xml를 들어 뭔가처럼 될 수있다. 아래는 탭 호스트를 설정할 때 내가 한 일입니다. 설명을 위해 두 개의 탭이있는 전체 코드가 추가되었습니다. getTabIndicator() 메소드는 관련 부분입니다.

private void initTabs(String currentTab) { 
    mTabHost = (TabHost) mRootView.findViewById(R.id.orderTabHost); 
    mTabHost.setup(); 

    // Add drawing tab 
    TabHost.TabSpec drawingTab = mTabHost.newTabSpec(DRAWING_TAB_TAG); 
    drawingTab.setContent(R.id.tab_drawing_container); 
    String drawingTitle = getResources().getString(R.string.drawing_title); 
    drawingTab.setIndicator(getTabIndicator(drawingTitle)); 
    mTabHost.addTab(drawingTab); 

    // Add detail tab 
    TabHost.TabSpec detailTab = mTabHost.newTabSpec(DETAIL_TAB_TAG); 
    detailTab.setContent(R.id.tab_info_container); 
    String detailTitle = getResources().getString(R.string.detail_title); 
    detailTab.setIndicator(getTabIndicator(detailTitle)); 
    mTabHost.addTab(detailTab); 
} 

// Call this for every tab. 
private View getTabIndicator(String tabTitle) { 
    View tabIndicator = LayoutInflater.from(getActivity()).inflate(
      R.layout.tab_indicator_holo, mTabHost.getTabWidget(), false); 
    TextView title = (TextView) tabIndicator 
      .findViewById(android.R.id.title); 
    title.setText(tabTitle); 
    return tabIndicator; 
} 
+2

XML에서이 작업을 수행하는 방법을 알고 싶습니다. –

+1

제 대답을 확인하십시오. – Max

0

필요에 따라 tab_selected_recorder.xml과 같은 tab xml 파일을 수정하여 탭의 배경을 변경해야 할 것입니다. 이 파일 중 하나를 제공하면 도움이 될 수 있습니다. 당신은 당신의 자바 코드에서 탭 표시를 지정할 수

<?xml version="1.0" encoding="utf-8"?> 
<shape android:shape="rectangle" > 
    <solid android:color="#888888" /> 
</shape> 
+1

유일한 XML 파일을 그 I 내가 가지고있는 것은 원래 게시물에 제공 한 것입니다. – Guy

+1

@Matthew crea에 대해 어때요? 테스트를 위해 제공 한 내용이 담긴 tab_selected_recorder.xml? – kiruwka

2

당신은 단순히

응용 프로그램이 작업을 수행 할 수 있습니다 : tabIndicatorColor에게

속성을 XML로 탭을 함께 할 수있는 뭔가가

<android.support.design.widget.TabLayout 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@id/pages_tabs" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="?attr/colorPrimary" 
android:minHeight="?attr/actionBarSize" 
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
app:tabIndicatorColor="@android:color/white" 
app:tabIndicatorHeight="4dp"/> 
관련 문제