2015-08-05 2 views
0

Я создал скользящую вкладку с помощью PagerSlidingTabStrip. она создана правильно, но панель действий теряться она показывает, как это:Панель действий, не показывающая с помощью PagerSlidingTabStrip

enter image description here

ли какая-либо помочь мне в этом, почему бар действие отключено.

import com.astuetz.PagerSlidingTabStrip; 


public class SMainTabActivity extends FragmentActivity implements ETabFragment.OnFragmentInteractionListener, 
    MTabFragment.OnFragmentInteractionListener{ 

public String classSelected; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    setProgressBarIndeterminateVisibility(true); 
    setProgressBarIndeterminateVisibility(false); 
    setContentView(R.layout.activity_subject_main_tab); 

    Bundle b = getIntent().getExtras(); 
    classSelected = b.getString("classId"); 
    // Get the ViewPager and set it's PagerAdapter so that it can display items 
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
    viewPager.setAdapter(new TabFragmentPagerAdapter(getSupportFragmentManager())); 

    // Give the PagerSlidingTabStrip the ViewPager 
    PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
    // Attach the view pager to the tab strip 
    tabsStrip.setViewPager(viewPager); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_main_actionsbar, menu); 

    return super.onCreateOptionsMenu(menu); 


    // getMenuInflater().inflate(R.menu.activity_main_actionsbar, menu); 
    //return true; 
} 

XML (activity_subject_main_tab):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<com.astuetz.PagerSlidingTabStrip 
    android:id="@+id/tabs" 
    app:pstsShouldExpand="true" 
    app:pstsTextAllCaps="true" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:textSize="14sp" 
    android:textColor="#000000" 
    app:pstsDividerColor="@color/color1" 
    app:pstsIndicatorColor="@color/color2" 
    app:pstsUnderlineColor="@color/color3" 
    app:pstsTabPaddingLeftRight="14dp"> 
</com.astuetz.PagerSlidingTabStrip> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:color/white" /> 

манифеста:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".SubjectMainTabActivity" 
     android:label="@string/title_activity_subject_main_tab" > 
    </activity> 
</application> 

Ожидаемое я s:

enter image description here

+0

Опубликовать R.layout.activity_subject_main_tab и код манифеста –

+0

Можете ли вы опубликовать activity_subject_main_tab.xml? – Hindol

+0

Я добавил xml – itin

ответ

1

Это может быть просто, что в файле XML, вы сделали вас ActionBar 0dp. Другая проблема может заключаться в том, что вы не используете подходящую тему для приложения. Тема, которая получает панель действий будет установлен в вашем style.xml так:

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

</style> 

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">true</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

Затем вызвать его в AndroidManifest.xml, например, так:

android:theme="@style/MyMaterialTheme" 

ПРИМЕЧАНИЕ: Вы бы нужно чтобы добавить цвета в styles.xml по вашему выбору. Кроме того, если вы полностью застряли, используйте этот пример для лучшего дополнительной Android поддерживается Материал Руководство по проектированию http://www.android4devs.com/2014/12/how-to-make-material-design-app.html

+0

Привет, я использую это: itin

+0

Посмотрите, что мой родитель стиля темы ... DarkActionBar, это будет то же самое, что и вы, просто с более конкретными потребностями. Вы даже можете полностью удалить эти цветовые метки и просто использовать окно. Теги – Tobidae

+0

не повезло. Я установил тему в стиле () и сделать запись в манифеста Android: темы = «@ стиль/AppThemeAction», но до сих пор бар действия отсутствует ... – itin

1

У меня была та же проблема, решить ее просто расширить ActionBarActivity вместо FragmentActivity и он будет работать.

+0

после перехода на ActionBarActivity мой код разбивается java.lang.NullPointerException: пытается вызвать виртуальный метод 'java.lang.Class java.lang.Object.getClass()' – itin

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