2013-07-23 3 views
0

Я разработал простое приложение для Android, в котором я реализовал вкладки с помощью Fragments ... но я не могу отображать изображения для вкладок .. Я приложил исходный код ниже .. пожалуйста дайте мне знать, что это ошибка ...Добавление изображений в Tab в Android

Мой класс активность TabDemoFragmentActivity.java

public class TabDemoFragmentActivity extends FragmentActivity { 

    /** 
    * Instance variable of type {@link FragmentTabHost} 
    */ 
    private FragmentTabHost fragmentTabHost; 

    /** 
    * This is a call back method, which gets invoked 
    * when the instance of this class is created. 
    * 
    * <p> 
    *  This method is used to set the tab host and 
    *  add the tab host fragments to the screen, 
    *  which acts as a UI. 
    * </P> 
    */ 
    @Override 
    protected void onCreate(Bundle bundle) { 

     super.onCreate(bundle); 

     setContentView(R.layout.activity_fragment_main); 

     fragmentTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); 
     fragmentTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

     fragmentTabHost.addTab(fragmentTabHost.newTabSpec("DropCall Details").setIndicator("DropCall Details", 
       getResources().getDrawable(R.drawable.drop_call_image)).setContent(intent), QoSDropCallDetailsFragment.class, null); 

     fragmentTabHost.addTab(fragmentTabHost.newTabSpec("Network Details").setIndicator("Network Details", 
       getResources().getDrawable(R.drawable.network_details)), QoSNetworkDetailsFragment.class, null); 
    } 
} 

Мой файл XML

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

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

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:orientation="horizontal" /> 

     <FrameLayout 
      android:id="@+id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="50" /> 

     <FrameLayout 
      android:id="@+id/realtabcontent" 
      android:layout_width="match_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" /> 
    </LinearLayout> 

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

изображение не получает здесь отображается .. пожалуйста, сообщите м e знаю, как отображать изображения на вкладках .. Спасибо

ответ

0

Я понимаю, что это старый вопрос, но надеемся, что кто-то может приземлиться на этой странице. Во-первых, позвольте мне отметить, что FragmentTabHost - это устаревший подход к добавлению вкладок в ваше приложение. Google хочет, чтобы вы переместились в ActionTabBar, чтобы добавить вкладки.

Я сделал очень схожую реализацию с вашей, и я не вижу большой разницы. Тем не менее, во-первых, я могу указать на два момента, которые вы можете указать на ваш код: вы должны скопировать изображение во все 3 выдвигаемые папки. Во-вторых, удалите лишний файл Framelayout (tabcontent), который у вас есть в xml, потому что у меня только 1 Framelayout, и я не вижу, как вы используете другой в своем классе Activity.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.app.FragmentTabHost 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+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="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:orientation="horizontal" /> 

    <FrameLayout 
     android:id="@+id/tabFrameLayout" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 
</LinearLayout> 

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

Вот отрывок из моего класса активность:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_fragment); 
     mTabHost = (FragmentTabHost) findViewById(R.id.tabhost); 
     mTabHost.setup(this, getSupportFragmentManager(), R.id.tabFrameLayout); 

     mTabHost.addTab(
       mTabHost.newTabSpec("tab1").setIndicator("Tab 1", 
         getResources().getDrawable(R.drawable.user_card)), 
       TabActivity.ListFragment.class, null); 

     mTabHost.addTab(
       mTabHost.newTabSpec("tab2").setIndicator("Tab 2", 
         getResources().getDrawable(R.drawable.menu)), 
         TabActivity.ListFragments.class, null); 
} 
Смежные вопросы