2013-11-03 1 views
0

Я использую FragmentTabHost для хранения фреймов в качестве вкладок. Я хочу удалить синий цвет, чтобы подчеркнуть вкладки. Как это сделать.Снимите подчеркивание синего цвета под вкладками фрагментов

enter image description here

public class MainMenuFragment extends Fragment { 

     private FragmentTabHost mTabHost; 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.fragment_main_menu, container, false); 


      // Locate android.R.id.tabhost in main_fragment.xml 
      mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost); 

      // Create the tabs in main_fragment.xml 
      mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.tabcontent); 

      // Create Tab1 with a custom image in res folder 
      mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Appetizers"), 
        AppetizersMenuFragment.class, null); 

     // Create Tab2 
      mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Entrees"), 
        EntreesMenuFragment.class, null); 

      // Create Tab2 
      mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Desserts"), 
        DessertsMenuFragment.class, null); 


      return rootView; 
     } 
    } 

ответ

4

Цвет индикатора табуляции установлен для растяжимой селектора, который можно найти here и выглядит следующим образом:

<!-- AOSP copyright notice can be found at the above link --> 
<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_holo" /> 
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" /> 

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

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

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

В вводимого коэффициента, занимаемый селектору все окрашенный в этот светло-голубой. Вы можете заменить эти чертежи своими собственными перекрашенными версиями. Оригиналы выглядеть следующим образом (оригиналы маленькие, ссылки включены):

Вы хотите скопировать указанный выше селектор в свой собственный проект вместе с чертежами. Затем вы захотите перекрасить чертежи любым цветом, которым вы хотите. Затем вы захотите установить селектор в качестве фона для ваших индикаторов вкладок. Вы можете сделать это, как это (после настройки вкладки):

TabHost host = (TabHost)view.findViewById(R.id.tab_host); 
TabWidget widget = host.getTabWidget(); 
for(int i = 0; i < widget.getChildCount(); i++) { 
    View v = widget.getChildAt(i); 

    // Look for the title view to ensure this is an indicator and not a divider. 
    TextView tv = (TextView)v.findViewById(android.R.id.title); 
    if(tv == null) { 
     continue; 
    } 
    v.setBackgroundResource(R.drawable.your_tab_selector_drawable); 
} 

Там может быть более простой способ сделать это, установив свой собственный макет индикатора клиента с селектором фона, но это то, что работал простым для меня.