kro*_*kin 279 android toolbar android-support-library
我正在尝试使用android-support-v7:21库创建简单的应用程序.
代码片段:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但是,不显示工具栏上的"我的标题",而是显示应用程序名称%.
似乎setTitle方法没有效果.
我想展示"我的头衔".
UPD:
之前,styles.xml是:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
所以,我认为没有使用动作栏.我添加NoActionBar到样式父级:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但问题没有解决.
kro*_*kin 536
找到解决方案:
代替:
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
Run Code Online (Sandbox Code Playgroud)
我用了:
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My title");
Run Code Online (Sandbox Code Playgroud)
它有效.
sor*_*niv 112
对于需要在设置SupportActionBar之后通过工具栏设置标题的任何人,请阅读此内容.
支持库的内部实现只是检查工具栏在设置SupportActionBar时是否具有标题(非空).如果有,则使用此标题代替窗口标题.然后,您可以在加载实际标题时设置虚拟标题.
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("");
setSupportActionBar(mActionBarToolbar);
Run Code Online (Sandbox Code Playgroud)
后来...
mActionBarToolbar.setTitle(title);
Run Code Online (Sandbox Code Playgroud)
Pra*_*ani 75
以上答案完全正确,但对我不起作用.
我用以下方法解决了我的问题.
实际上我的XML是这样的:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/confirm_order_mail_layout"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/confirm_order_appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/confirm_order_list_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|enterAlways">
<android.support.v7.widget.Toolbar
android:id="@+id/confirm_order_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有的选项,毕竟我刚刚删除CollapsingToolbarLayout因为我不需要在那个特定的使用XML所以我的最终XML就像:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/confirm_order_mail_layout"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/confirm_order_appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/confirm_order_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
现在你必须使用setTitle()上面的答案:
mActionBarToolbar = (Toolbar) findViewById(R.id.confirm_order_toolbar_layout);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My Title");
Run Code Online (Sandbox Code Playgroud)
现在,如果你想使用CollapsingToolbarLayout和Toolbar再在一起,你必须使用setTitle()的CollapsingToolbarLayout
CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.confirm_order_mail_layout);
collapsingToolbarLayout.setTitle("My Title");
Run Code Online (Sandbox Code Playgroud)
愿它能帮到你.谢谢.
小智 35
您只需使用即可更改任何活动名称
Acitivityname.this.setTitle("Title NAme");
Run Code Online (Sandbox Code Playgroud)
Axr*_*rov 33
试试这个,你可以直接用XML定义标题:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:title="some title"
app:popupTheme="@style/AppTheme.PopupOverlay">
Run Code Online (Sandbox Code Playgroud)
小智 15
设置每个Navbar片段标题的标题
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
myView = inflater.inflate(R.layout.second_layout, container, false);
getActivity().setTitle("title");
return myView;
}
Run Code Online (Sandbox Code Playgroud)
Rag*_*han 12
试试这个..这个方法对我有用.. !! 希望它可以帮助某人.. !!
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:singleLine="true"
android:text="Toolbar Title"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold" />
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
要在工具栏中显示徽标,请尝试以下代码段.//设置drawable
toolbar.setLogo(ContextCompat.getDrawable(context, R.drawable.logo));
Run Code Online (Sandbox Code Playgroud)
让我知道结果.
小智 11
getSupportActionBar().setTitle("Your Title");
Run Code Online (Sandbox Code Playgroud)
请参阅https://code.google.com/p/android/issues/detail?id=77763.显然它应该像那样工作.一旦调用setSupportActionBar()方法调用,ActionBar委托就有责任将调用路由到正确的视图.
对于需要在设置 SupportActionBar (@sorianiv) 后一段时间通过工具栏设置标题并且您Toolbar在 a 中的任何人CollapsingToolbarLayout,请阅读以下内容:
mToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
Toolbar toolbar = findViewById(R.id.toolbar);
//toolbar.setTitle(""); // no need to do this
//mToolbarLayout.setTitle("Title"); // if you need an initial title, do this instead
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
后来,
mToolbarLayout.setTitle("New Title");
Run Code Online (Sandbox Code Playgroud)
这不仅仅是关于 .setTitle
支持工具栏(Appcompat v7)的更多方法onCreate仅适用于
getSupportActionBar().method()
而且不合作 mToolbar.method()
例子:
getSupportActionBar().setTitle("toolbar title");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
虽然接下来的方法,而没有正常工作getSupportActionBar()中onCreate
mToolbar.setVisibility(View.VISIBLE);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//
}
Run Code Online (Sandbox Code Playgroud)
问题只有onCreate事件,你仍然可以使用mToolbar.setTitle()以后而不是烦人getSupportActionBar().setTitle(),例如,如果你添加onCreate它将工作(因为它将在以后执行,之后onCreate)
mHandler.post(new Runnable() {
@Override
public void run() {
mToolbar.setTitle("toolbar title");
}
});
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用这个解决方案/sf/answers/2480141331/而不是/sf/answers/1855480091/,因为如果你多次更改标题(在不同的功能中),它使用起来会更舒服mToolbar.setTitle()比较长的getSupportActionBar().setTitle()一个,你没有看到关于null异常的恼人通知,如getSupportActionBar().setTitle()
我试图从片段重命名工具栏
它帮助了我,我希望能帮助别人
Activity activity = this.getActivity();
Toolbar toolbar = (Toolbar) activity.findViewById(R.id.detail_toolbar);
if (toolbar != null) {
activity.setTitle("Title");
}
//toolbar.setTitle("Title"); did not give the same results
Run Code Online (Sandbox Code Playgroud)
应用程序标题不会显示为每个活动的默认标题,您可以在每个活动中插入不同的标题。在 onCreate 下方的活动文件中,只需粘贴一行即可设置标题,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("Your Title Here");
Run Code Online (Sandbox Code Playgroud)
只需将文本“Your Title Here”更改为您的文本即可。
| 归档时间: |
|
| 查看次数: |
203844 次 |
| 最近记录: |