我在尝试将支持工具栏上的后退按钮居中时遇到问题。 我在ActionBarActivity中使用它。
declare @cmd nvarchar(max)
set @cmd = 'DECLARE @fileName NVARCHAR(256) BACKUP ... ' + dbo.UDF_Gregorian_To_Persian_WithDash(...) + ' ... '
EXEC sp_add_jobstep
@job_name = N'Every 5 minutes log backup ',
@step_name = N'set T-sql command',
@subsystem = N'TSQL',
@command=@cmd,
@retry_attempts = 1,
@retry_interval = 1 ;
并在活动的<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolbar="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
toolbar:popupTheme="@style/ThemeOverlay.AppCompat.Light"
toolbar:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
内设置向上导航,如下所示:
onCreate()
但是,我得到的是: 如您所见,后退按钮放错了位置
编辑:
问题似乎在于Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.title_activity_scanner);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
的自定义值设置为40dp,但现在结果证明,这是错误放置的标题。
答案 0 :(得分:77)
工具栏支持比ActionBar更集中的功能集。从一开始 最后,工具栏可能包含以下可选项的组合 元素:
导航按钮。这可能是向上箭头,导航菜单切换, 关闭,折叠,完成或应用程序选择的另一个字形。这个 按钮应始终用于访问其他导航目的地 在工具栏的容器内及其表示的内容或 否则保留工具栏表示的当前上下文。的的 导航按钮在工具栏的最小值内垂直对齐 高度,如果设置。
因此,如果将 minHeight 属性设置为与工具栏高度相同( layout_height ),则后退箭头将垂直居中。
答案 1 :(得分:6)
如果工具栏的高度不符合标准,现在可以将后退按钮(2k20)与androidx
Toolbar
居中,您只需使用buttonGravity
属性即可。
这允许您使用wrap_content
而不是特定的高度(minHeight
不允许这样做):
<androidx.appcompat.widget.Toolbar
app:buttonGravity="center_vertical"
android:layout_height="wrap_content"
... />
答案 2 :(得分:2)
Inside ActionBarActivity
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBat().setTitle("Hello World");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
布局代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primary"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/Theme.AppCompat"/>
风格:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
<style name="AppTheme" parent="AppTheme.Base">
请记住,工具栏只是一个视图组,所以你可以用任何你喜欢的方式设置它。 这是图片链接:Toolbar sample
希望它有所帮助。
答案 3 :(得分:1)
实现此目的的最佳方法是从工具栏中删除常规“后退”按钮,并在XML布局中添加自定义ImageButton并将图像设置为它。您可以将此ImageButtton放在工具栏上的任何位置。
您的活动布局代码应该是这样的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ImageButton
android:layout_width="60dp"
android:layout_height="60dp"
android:id="@+id/button"
android:src="@drawable/attach_icon"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
答案 4 :(得分:0)
捎带@Rick Sanchez answer - 如果您知道工具栏的minHeight
属性的大小,则可以使用:
android:gravity="top"
app:titleMarginTop="@dimen/margin_to_center"
在工具栏中以使文本居中。如果您使用的是android:minHeight="?actionBarSize"
,那么这将是大约13p
答案 5 :(得分:0)
对我来说,没有一个解决方案有效。在我的情况下,问题是我申请的保证金:
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
... >
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp" />
</android.support.v7.widget.Toolbar>
直接将其应用到工具栏后,按钮垂直居中:
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
... >
<View
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
答案 6 :(得分:0)
我发现在Toolbar构造函数中有一个字段可以设置按钮重力,
import datetime
temp_array = numpy.array([(i - datetime.datetime(1970, 1, 1)) / datetime.timedelta(seconds=1) for i in old_array])
new_array = temp_array.astype('float')
,但v7支持工具栏无法设置,
mButtonGravity = a.getInteger(R.styleable.Toolbar_buttonGravity, Gravity.TOP);
答案 7 :(得分:0)
将按钮的大小设置为56dp
,并将scaleType
设置为center
,Appbar
上没有空白
确保您的图标尺寸为24x24
答案 8 :(得分:0)
我正在使用
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
我应该什么时候使用
<style name="MyActionBar" parent="@style/Widget.AppCompat.Toolbar">