2016-08-12 74 views
1

片段更改時,如何在Toolbar內更改Textview?我的工具欄位於BaseActivity,所以我可以在所有活動中使用。片段中的工具欄標題

<android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:popupTheme="@style/AppTheme.PopupOverlay"> 

       <FrameLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 

        <TextView 
         android:id="@+id/toolbar_title" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:layout_marginBottom="4dp" 
         android:layout_marginLeft="20dp" 
         ndroid:layout_marginRight="attr/actionBarSize" 
         android:layout_marginTop="4dp" 
         android:textColor="@color/colorAccent2" 
         android:textSize="19sp" 
         tools:ignore="HardcodedText" /> 


       </FrameLayout> 
      </android.support.v7.widget.Toolbar> 

回答

1

你可以使用這條線很容易地改變標題:

((MyAppCompatBaseActivity)getActivity()).getSupportActionBar().setTitle("Hello World!"); 

編輯:

我剛纔看到你有一個TextViewToolbar內。因此,要設置標題做在您的BaseActivity:

public class BaseActivity extends AppCompatActivity { 

    TextView textViewTitle; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // Other Code 
     textViewTitle = (TextView) findViewById(R.id.toolbar_title); 
    } 

    public void setTitle(String title) { 
     textViewTitle.setText(title); 
    } 

} 
在片段

然後只是這樣做:

((BaseActivity)getActivity()).setTitle("Hello World!"); 
+0

這didnt工作。因爲我的片段是在標籤佈局,它給所有我的片段標題相同的標題 –

+0

我編輯了我的答案。請嘗試。 –

+0

它看起來像工作,但沒有更新標題,如果我改變e.x的片段從第一到第二或從第三到第二。爲什麼? –

0

只要你能做到這一點你onCreateView()方法內。

getActivity().setTitle("Your Title"); 

編輯1:

對於center使title你需要讓你的layout像下面。

<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:paddingLeft="0dp" 
      android:paddingRight="0dp" 
      android:layout_width="match_parent" 
      app:contentInsetStart="0dp" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary"> 

      <TextView 
        android:id="@+id/toolbar_title" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:gravity="center" 
        android:text="LOGO" 
        android:textColor="@color/colorAccent" 
        android:textSize="32sp" 
        android:textStyle="bold" 
        tools:ignore="HardcodedText" /> 

    </android.support.v7.widget.Toolbar> 
+0

如何使它在garavity(中心)比 –

+0

@AlimovShohrukh檢查我編輯的答案。 –

+0

that does not work,sorry –

0

textView和工具欄爲公衆在BaseActivity。現在在你的片段中使用下面的代碼。

((BaseActivity)getActivity()).yourTextView.setText("HOME"); 
+0

謝謝。我已經doyne這個,它的工作 –

-1

只需添加到您的代碼

((MainActivity) getActivity()).getSupportActionBar().setTitle("Yeeee"); 
+0

最好是,如果解釋更多的答案...這可能是非常有用的未來用戶有同樣的問題... – DaFois

+0

我會建議擴大你的答案。 –

+1

上面的@Eric B.可能重複。這確實是正確答案 –