2014-11-22 4 views
0

Привет, Я хочу иметь настраиваемую панель действий с возможностью просмотра вкладок. Я создал настраиваемую панель действий и установил пользовательский вид панели действий. панель действий работает хорошо, когда я использую другие экраны, но когда я использую ее с tabview, значок приложения появляется в левой части панели действий. Пожалуйста, помогите мне сделать свою панель действий для заполнения всей ширины над tabview. Мой код, как это,Как сделать настраиваемую панель действий для заполнения ширины экрана при использовании с возможностью просмотра вкладки?

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    // requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.tab_bar); 
    final Animation animLogOut=AnimationUtils.loadAnimation(this, R.anim.animzoom); 
    final Animation animBack=AnimationUtils.loadAnimation(this, R.anim.animzoom); 
// final Animation animHome=AnimationUtils.loadAnimation(this, R.anim.animzoom); 

//2 ActionBar objects for custom action bar and Tab view 
    mActionBar=getActionBar(); 
    actionBar = getActionBar(); 

    viewPager = (ViewPager)findViewById(R.id.pager); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

    LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    LayoutInflater mInflater = LayoutInflater.from(this); 
    View mCustomView = mInflater.inflate(R.layout.actionbar, null); 

    mActionBar.setDisplayShowHomeEnabled(false); 
    mActionBar.setDisplayShowTitleEnabled(false); 
    mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); 
    mActionBar.setDisplayShowCustomEnabled(true); 
    mActionBar.setCustomView(mCustomView, lp1); 

    imLogout = (ImageView)mCustomView.findViewById(R.id.imlogout); 
    imBack = (ImageView)mCustomView.findViewById(R.id.imback); 
    imHome = (ImageView)mCustomView.findViewById(R.id.home); 
    imHome.setVisibility(View.INVISIBLE); 

    viewPager.setAdapter(mAdapter); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    //Adding tabs 
    for(String tab_name: tabs){ 
     actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this)); 
    } 

    /** 
    * on swiping the viewPager make respective tab selected 
    */ 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageSelected(int position){ 
      //on changing the page 
      //make respected tab selected 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

}

EDIT1: вот мое пользовательское действие бар макет, который conatils 4 imageViews.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/llheader" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="fill_horizontal" 
    android:background="@color/headerbackground" 
    android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/imlogout" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
       android:padding="6dp" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="10dp" 
      android:src="@drawable/logout" /> 
    <ImageView 
      android:id="@+id/home" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="10dp" 
      android:layout_toLeftOf="@+id/imlogout" 
      android:padding="6dp" 
      android:src="@drawable/home" /> 
     <ImageView 
      android:id="@+id/productlogo" 
      android:layout_width="wrap_content" 
      android:layout_height="25dp" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="10dp" 
      android:layout_toRightOf="@+id/imback" 
      android:paddingBottom="7dp" 
      android:src="@drawable/harmaan" /> 


      <ImageView 

      android:id="@+id/imback" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
       android:padding="6dp" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/back_icon" /> 

    </RelativeLayout> 

и на экране появляется логотип приложения слева. из-за низкой репутации я не могу опубликовать экранный экран. пожалуйста, помогите мне решить эту проблему.

+0

вы можете положить ActionBar код XML? –

+0

ya Я поставил xml-код. pls check – Thejas

ответ

0

Изменить этот код

LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 

по

ActionBar.LayoutParams lp1 = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT); 

затем проверить надеюсь, что это поможет вам

+0

нет, он не работал ... – Thejas