2013-06-05 61 views
4

我已經實現了一個操作欄,但其標題沒有顯示出來。另外我的應用程序有兩個片段,標題應該根據顯示的片段進行更改。ActionBar標題不可見

public class MainActivity extends FragmentActivity { 
    /** Called when the activity is first created. */ 

    AppSectionsPagerAdapter mAppSectionsPagerAdapter; 

    ViewPager mViewPager; 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setupActionBar(); 

     mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager()); 


     // user swipes between sections. 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mAppSectionsPagerAdapter); 
     mViewPager.setOnPageChangeListener(new OnPageChangeListener() 
     { 
      public void onPageSelected(int position) 
      { 
      } 

      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 
      { 

      } 

      public void onPageScrollStateChanged(int state) 
      { 
       if (state == ViewPager.SCROLL_STATE_DRAGGING) 
       { 

       } 
       if (state == ViewPager.SCROLL_STATE_IDLE) 
       { 

       } 
      } 
     }); 


    } 


    public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { 



     public AppSectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int i) { 
      switch (i) { 
       case 0: 


        return new AllPatient(); 

       case 1: 

        //Intent intent = new Intent(MainActivity.this,abc.class); 
        return new LaunchpadSectionFragment(); 



      } 
      return null; 
     } 

     @Override 
     public int getCount() { 
      return 2; 

     } 



    } 




    private void setupActionBar() { 
     ActionBar actionBar = getActionBar(); 
     //actionBar.setDisplayShowHomeEnabled(false); 


     actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE)); 

     actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, 
       ActionBar.DISPLAY_SHOW_CUSTOM); 
     ViewGroup v = (ViewGroup)LayoutInflater.from(this) 
       .inflate(R.layout.header, null); 
     actionBar.setCustomView(v, 
       new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, 
         ActionBar.LayoutParams.WRAP_CONTENT, 
         Gravity.CENTER_VERTICAL | Gravity.RIGHT)); 
     actionBar.setDisplayShowTitleEnabled(true); 
     actionBar.setTitle(getTitle()); 

    } 


} 

另請告訴我如何在操作欄中的圖標之間添加分隔線。 在此先感謝。

+0

你試着用Color.BLACK? – Blackbelt

+0

是的,我做過。但沒有發生。 –

+0

刪除actionBar.setCustomView調用並檢查它是否有任何區別 – Blackbelt

回答

2

嘗試改變這一行:

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); 

通過這一個:

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME, ActionBar.DISPLAY_SHOW_CUSTOM); 
+0

Thanx,但只有徽標和標題顯示的不是圖標。 –

+0

你可以嘗試一下嗎?:'actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME,ActionBar.DISPLAY_SHOW_CUSTOM)'? –

+0

Nopes,標題沒有顯示。 Thnx –

1

我認爲這個問題是您要添加自定義視圖與MATCH_PARENT和Android的寬度去除作用小節標題(但不是主頁圖標)。這不是很合乎邏輯,但這是我在我的應用程序中看到的行爲。將寬度設置爲WRAP_CONTENT會產生相同的問題。解決方法是給定製視圖一個固定的寬度,或者如果您需要寬度根據一個活動變化到另一個寬度,以編程方式計算寬度並將其設置爲每個活動的新固定寬度。

1

添加節目標題標誌,像這樣

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM);