2017-02-18 24 views
0

我在我的xml文件中有一個工具欄,沒有定義子視圖。當我們呼叫setSupportActionBar(toolbar)時,我想在默認標題的確切位置上添加一個TextView。在特定事件中,我喜歡在特定事件的情況下淡入淡出這兩種觀點。如何將TextView添加到工具欄中相同的標題位置?

我試圖在活動的onCreate()中執行以下操作,但除了工具欄中的默認標題外,沒有任何東西可見。

TextView tv = new TextView(this); 
    tv.setLayoutParams(toolbarTitle.getLayoutParams()); 
    tv.setHeight(toolbarTitle.getHeight()); 
    tv.setWidth(toolbarTitle.getWidth()); 
    tv.setText("Other Title"); 
    tv.setLeft(toolbarTitle.getLeft()); 
    toolbar.addView(tv); 

我也嘗試添加一個RelativeLayout的工具欄裏面寬度和高度設置爲與父母,但是這一次的工具欄消失默認標題TextView的。

如何在工具欄中的默認標題TextView的確切位置添加另一個TextView?

回答

0

我在工具欄上我的活動onCreate()方法使用getSupportActionBar().setDisplayShowTitleEnabled(false)禁用標題,並把兩個重疊textViews封裝他們與佈局中的工具欄內的relativeLayout。然後,我會根據自己的需要製作動畫。在改變文字的同時,我用titleTextView.setText()而不是toolbar.setTitle()的方法。

1

您可以使用AppBarLayout如下

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.AppBarLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/toolbar_layout" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    > 
<TextView 
    android:id="@+id/toolbar_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/aadhaar_sign_up" 
    android:textColor="@color/white" 
    android:textSize="18.0sp" 
    app:fontName="Font-Medium.ttf" 
    /> 
</android.support.v7.widget.Toolbar> 

</android.support.design.widget.AppBarLayout> 

然後您使用的TextView如下

Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 
((TextView) toolbar.findViewById(R.id.toolbar_title)).setText(title); 
+0

這會給一個textview,對吧?我想原始文本視圖保持在哪裏,加上添加一個 – Mehmed

+0

你可以在'工具欄'中添加儘可能多的textiews' – arjun

+0

我希望原始標題TextView留下來,但是當我添加另一個TextView時,它會消失。我的問題是如何保留原始的TextView並將其他TextView放在上面:/ – Mehmed

相關問題