0

我想通过使用ActionBar来开发Android应用程序。目前我在应用程序的开始,并获得一个活动,与ActionBar和一些碎片。我已经可以更改标签了。但是当从Fragment移动到另一个Fragment时,我遇到了ActionBar的问题。使用操作栏设计Android应用程序的最佳方法

我读过,那不是用例,使用与ActionBar的活动。

但是,这种情况下的最佳做法是什么?

MainApplication

  • 表1:
    • 的ListView
  • 表2:
    • 的ListView - >的DetailView
  • 标签3:
    • ListView控件 - >的DetailView
  • 设置 - 巴顿在动作条:
    • ListView控件 - >的DetailView

我应该为每个标签或更好的碎片四项活动?

+0

那么,如果你想标题改变基于标签片段只是改变标题,如果我得到你的权利,否则使用'ViewPager'我认为这会更好 – silverFoxA

回答

0

我想最好的方法是创建一个自定义操作栏并根据活动进行修改。这里是一个例子..

首先,您必须创建自定义操作栏的布局,以便根据您的要求定义功能。这里是xml文件...

布局自定义动作条:

<ImageView 
    android:id="@+id/custom_actionbar_back_iv" 
    android:layout_width="@dimen/small_margin_ar" 
    android:layout_height="@dimen/very_small_margin_ar" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:src="@drawable/up_navigation"/> 

<TextView 
    android:id="@+id/custom_actionbar_titleText_tv" 
    style="@style/wrapscreen" 
    android:layout_centerVertical="true" 
    android:layout_toRightOf="@+id/custom_actionbar_back_iv" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="@color/white" 
    android:textSize="@dimen/above_medium_text_size" /> 

<ImageButton 
    android:id="@+id/custom_actionbar_goToArchiveActivity_ib" 
    style="@style/wrapscreen" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="@dimen/medium_margin" 
    android:background="@null" 
    android:src="@drawable/ic_action_overflow" /> 

这里去执行..

定义setupactionBar()在onCreate方法()方法

private void setUpActionBar() { 
     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayShowHomeEnabled(false); 
     actionBar.setDisplayShowTitleEnabled(false); 

     LayoutInflater layoutInflater = LayoutInflater.from(this); 
     View customActionBarView = layoutInflater.inflate(R.layout.custom_actionbar, null); 

     // this view is used to show tile 
     TextView ActivityTitleTV = (TextView) customActionBarView.findViewById(R.id.custom_actionbar_titleText_tv); 
     ActivityTitleTV.setText(R.string.title_text_archive); 

     //this view can be used for back navigation 
     ImageView backToRecorderIV = (ImageView) customActionBarView.findViewById(R.id.custom_actionbar_back_iv); 
     backToRecorderIV.setVisibility(View.VISIBLE); 
     backToRecorderIV.setOnClickListener(this); 

     //Another view which has up navigation 
     ImageButton goToArchiveActivityIB = (ImageButton) customActionBarView.findViewById(R.id.custom_actionbar_goToArchiveActivity_ib); 
     goToArchiveActivityIB.setVisibility(View.GONE); 

     actionBar.setCustomView(customActionBarView); 
     actionBar.setDisplayShowCustomEnabled(true); 
    } 

    //listener for back navigation 
    @Override 
    public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.custom_actionbar_back_iv: 
       Intent recorder = new Intent(ArchiveActivity.this, RecorderActivity.class); 
       startActivity(recorder); 
       finish(); 
       break; 
     } 
    } 

希望这有助于...

相关问题