0

У меня есть навигационный ящик от this example ..now, когда я запустить приложение первый элемент ящика появляетсяКак установить изображения в tabhost с использованием фрагмента

В моем фрагменте я добавил Tabhost, в моем Tabhost я могу установить текст, но я хочу, чтобы поместить изображения вместо текста

Ниже мой код может любой помощи

public class HomeFragment extends Fragment { 

    ExpandableListAdapter listAdapter; 
    ExpandableListView expListView; 
    List<String> listDataHeader; 
    HashMap<String, List<String>> listDataChild; 

    private FragmentTabHost tabHost; 
    private SearchView searchView; 

    public HomeFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     tabHost = new FragmentTabHost(getActivity()); 
     tabHost.setup(getActivity(), getChildFragmentManager(), R.layout.my_parent_fragment); 

     Bundle arg1 = new Bundle(); 
     arg1.putInt("Arg for Frag1", 1); 


     // tabHost.newTabSpec("All").setIndicator(null,getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.tab_template_two_tabs_all); 

     // tabHost.addTab(tabHost.newTabSpec("one").setIndicator("The Tab", getResources().getDrawable(R.drawable.ic_launcher)).setContent(new Intent(getActivity(), DiscoverFragment.class))); 
     tabHost.addTab(tabHost.newTabSpec("First").setIndicator("First"), DiscoverFragment.class, arg1); 

     // tabHost.addTab(tabHost.newTabSpec("TAb1").setIndicator("Tab1"),FragmentA.class,arg1); 

     Bundle arg2 = new Bundle(); 
     arg2.putInt("Arg for Frag2", 2); 
     tabHost.addTab(tabHost.newTabSpec("Sec").setIndicator("Sec"), ShopFragment.class, arg2); 

     Bundle arg3 = new Bundle(); 
     arg2.putInt("Arg for Frag3", 3); 
     tabHost.addTab(tabHost.newTabSpec("Third").setIndicator("Third"), Thirdtab.class, arg3); 

     Bundle arg4 = new Bundle(); 
     arg2.putInt("Arg for Frag4", 4); 
     tabHost.addTab(tabHost.newTabSpec("Four").setIndicator("Four"), FourthTabs.class, arg4); 
     return tabHost; 


    } 


} 

XML

<android.support.v4.app.FragmentTabHost 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom"/> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
    </LinearLayout> 

</android.support.v4.app.FragmentTabHost> 

ответ

1
spec = tabHost.newTabSpec("First").setIndicator("name",getResources().getDrawable(R.drawable.port)) 
        .setContent(intent); 

Попробуйте.

+0

принят и проголосует за это работает ... но любая идея, как установить высоту изображения? –

+0

Я отредактировал ваш ответ, это поможет другим с фрагментами –

1

Измените tabhost в

tabHost.addTab(tabHost.newTabSpec("Sec"). 
    setIndicator(getTabIndicator(tabHost.getContext(), R.string.tab1, R.drawable.image1)), ShopFragment.class, arg2); 

    /** For both Image and text view 
     * Remove text if you don't need 
     */ 
     private View getTabIndicator(Context context, int title, int icon) { 
         View view = LayoutInflater.from(context).inflate(R.layout.tab_layout, null); 
         ImageView iv = (ImageView) view.findViewById(R.id.indicatorImageView); 
         iv.setImageResource(icon); 
         TextView tv = (TextView) view.findViewById(R.id.indicatorText); 
         tv.setTypeface(tv.getTypeface(), Typeface.BOLD); 
         tv.setText(title); 
         return view; 
        } 

tab_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <ImageView android:id="@+id/indicatorImageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_gravity="center_horizontal" /> 

    <TextView 
     android:id="@+id/indicatorText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" /> 

</LinearLayout> 
+0

, как вы можете видеть, я использую фрагмент. –

+1

спасибо за ваше время, проголосуйте –

2

Вы можете также использовать активность с помощью TabActivity. TabActivity устарела.

TabHost tabHost; 
 

 
tabHost = getTabHost(); 
 
\t \t setTabs(); 
 

 
String arrTabId[] = new String[] { "tab 1", "tab 2", 
 
\t \t \t "tab 3", "tab 4", "tab 5" }; 
 

 

 
private void setTabs() { 
 
\t \t addTab(arrTabId[0], R.drawable.first_tab, Activity_List.class); 
 
\t \t addTab(arrTabId[1], R.drawable.second_tab, PedidosActivity.class); 
 
\t \t addTab(arrTabId[2], R.drawable.pedidos, ApplicationActivity.class); 
 
\t \t addTab(arrTabId[3], R.drawable.third_tab, ChatActivity.class); 
 
\t \t addTab(arrTabId[4], R.drawable.fourth_tab, SettingActivity.class); 
 
\t } 
 

 

 

 
private void addTab(String labelId, int drawableId, Class<?> c) { 
 
\t \t Intent intent = new Intent(this, c); 
 
\t \t TabHost.TabSpec spec = tabHost.newTabSpec(labelId); 
 

 
\t \t View tabIndicator = LayoutInflater.from(this).inflate(
 
\t \t \t \t R.layout.tab_indicator, getTabWidget(), false); 
 
\t \t ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon); 
 

 
\t \t icon.setImageResource(drawableId); 
 
\t \t spec.setIndicator(tabIndicator); 
 
\t \t spec.setContent(intent); 
 
\t \t tabHost.addTab(spec); 
 
\t }

В проекте библиотеки вы также получите раздвижные вкладки. Вы настраиваете это также путем раздувания макета.

 Смежные вопросы

  • Нет связанных вопросов^_^