2017-09-11 1 views
1

클릭 효과와 선택한 탭 배경을 모두 구현하려면 아래 코드를 사용하여 선택한 탭 배경을 변경하십시오. 위의 코드가 완벽하게 작동 당김탭 배경 클릭 효과 및 선택한 탭 배경색 변경

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@color/colorTabPrimary" 
android:state_selected="true"/> 
<item android:drawable="@color/colorPrimary"/> 
</selector> 

내부

myLayout.xml 코드

<android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="45dp" 
      android:background="?attr/colorPrimary" 
      app:tabBackground="@drawable/tab_color_selector" 
      app:tabIndicatorColor="@android:color/white" 
      app:tabIndicatorHeight="2dp" 
      app:tabGravity="fill" 
      /> 

tab_color_selector,

내가

app:tabBackground="?attr/selectableItemBackground" 
아래를 사용해야 효과를 클릭 제공하기 위해

어떻게 둘을 결합 할 수 있습니까?

답변

0

다음

탭을 시도 하나 개의 XML 파일을 만들고 다음을 수행 선택한 탭의 배경을 변경하려면 _color_selector.xml 당김 추가 ripple.xml는

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@color/blue_selected_tab" 
android:state_selected="true"/> 
<item android:drawable="@drawable/ripple" android:state_pressed="true"/> 
<item android:drawable="@color/colorPrimary"/> 
</selector> 

ripple.xml 당김

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:color="@color/blue_selected_tab" 
tools:targetApi="lollipop"> <!-- ripple effect color --> 
<item android:id="@android:id/background"> 
    <shape android:shape="rectangle"> 
     <solid android:color="@color/blue_selected" /> <!-- background color --> 
    </shape> 
</item> 

+0

나를 위해 일했습니다. 고맙습니다. – Adrian

1

선택한 탭의 textColor을 변경하려면 TabLayout 속성을 사용하면됩니다.

app:tabSelectedTextColor="@android:color/white" 

app:tabBackground="@drawable/selector_tab" 

selector_tab.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true"> 
     <shape> 
      <solid android:color="@color/colorGreen" /> 
     </shape> 
    </item> 
    <item android:state_selected="false"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 
</selector> 
+0

응답에 감사드립니다 state_pressed합니다. 클릭 효과와 선택된 탭 배경색을 모두 구현해야합니다. 그렇게 할 방법이 있습니까? – Adrian

+0

예 위의 코드는 귀하의 요구 사항에 완벽합니다 –