我想在toolbar图标和工具栏标题之间放置空格,而且我想要改变statusbar我的应用程序中的颜色与toolbar任何人可以帮助的颜色相同,目前它看起来像这样:
这是我的代码:
public class AbstractActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_abstract);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_astrological_sun);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#0F6177"
app:popupTheme="@style/AppTheme.PopupOverlay" >
</android.support.v7.widget.Toolbar>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我试图实现android.support.v7.widget.SearchView与collapseIcon上Toolbar.一切工作正常即SearchView工作正常,但我无法删除/减少填充之间SearchView和collapseIcon,如可见随附的屏幕截图.
有关如何做到这一点的任何想法?

我试过了 :
app:contentInsetStartWithNavigation="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
在新的Material Design(使用AppCompat)中,我试图将一些动作图标与新工具栏的抽屉图标对齐.就像是:

我想我正在正确地查看所有指标......

问题是我不能完美地对齐它,因为在那之后剩下16px的填充,图标应该开始,但图标本身也有一些"填充"(来自材料github的图标),如:

也许是愚蠢但我不知道我错过了什么.如何才能考虑图像内部的填充以正确对齐它?对齐单选按钮或复选框与该操作栏图标有同样的问题.
我尝试了这段代码:
<RelativeLayout
android:id="@+id/image_button"
android:layout_width="72dp"
android:layout_height="wrap_content">
<ImageView
android:layout_width="32dp"
android:layout_height="48dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:src="@drawable/ic_label_grey600_48dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但是看起来并不符合我(就像我发布的第一张截图一样).这里也看起来完美对齐:

看起来喜欢考虑的东西超过72px和16px的填充.
好的,让我向您展示更多示例和一些代码.我的列表项目具有带标签文本的单选按钮的成像.
<RadioButton
style="?android:textAppearanceMedium"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginLeft="16dp"
android:paddingLeft="32dp"
android:singleLine="true"/>
Run Code Online (Sandbox Code Playgroud)
结果:


我实际上没有看到规则将marginLeft和paddingLeft设置为正确的值而不使用自定义按钮作为单选按钮(并且知道该按钮的尺寸)... < - 这是一个不好的选项,因为颜色按钮取自我的accentColor(材料的新东西).
它看起来似乎新的Gmail应用程序面临一些对齐问题(当我选择邮件时,1与邮件标题不再对齐):


android android-layout android-icons android-actionbar material-design
我创建一个自定义的ActionBar使用RelativeLayout与ImageButton左侧以取代它。我已经从Google网站下载了“后退”图标,可以在ImageButton
问题是我需要创建一个“后退”按钮来替换原始的ActionBar“后退按钮”,并且我需要使其与原始ActionBar“后退”按钮完全相同。
我想知道“返回”按钮图像的系统默认填充是什么?
几个小时前我已经将我的Android设备版本更新到6.0.1,从那时起我的应用程序崩溃了,当我离开活动时,它持有DrawerLayout并出现此错误:
12-16 16:08:04.122 9331-9331/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my.app, PID: 9331
java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:831)
at android.view.View.measure(View.java:18794)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18794)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at …Run Code Online (Sandbox Code Playgroud) 我一直在拉我的头发反对这个左边的填充/边距只是不要消失问题,即将成为秃头......对此的解决方案将不胜感激!我已经尝试过 SO 的这些答案,它确实移动了一些填充,但不是全部。基本上所有的答案都说将 contentInsetStart 和 contentInsetLeft 设置为 0dp。这确实删除了左侧的一些填充,但我仍然看到一个填充,它只是比我将 contentInsetStart 和 contentInsetLeft 设置为 0dp 之前小。此解决方案适用于三星手机,但不适用于我测试过的任何平板电脑,例如 Nexus 7、Nexus 9、Dell Venus 8 等。

我相信很多人都有这个问题,这些是我尝试过的答案,但仍然在上面显示的左侧留下填充/边距。
Android Lollipop、AppCompat ActionBar 自定义视图不占用整个屏幕宽度
我的活动/操作栏左侧的填充/边距 - 不知道它来自哪里,无法删除它
如何在 ActionBar 上移除应用程序图标和屏幕边缘之间的边距?
样式
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/AppThemeActionBar</item>
<item name="logo">@android:color/transparent</item>
</style>
<style name="AppThemeActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="displayOptions">showCustom</item>
<item name="background">@color/blue</item>
<item name="actionBarSize">50dp</item>
<item name="height">50dp</item>
<item name="contentInsetLeft">0dp</item>
<item name="contentInsetStart">0dp</item>
<item name="contentInsetEnd">0dp</item>
<item name="android:layout_marginLeft">0dp</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
活动布局,activity_main.xml,它几乎是空的,只是主要活动类的虚拟布局,自定义操作栏视图位于另一个布局文件中。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout> …Run Code Online (Sandbox Code Playgroud) 我试图将我的ToolBar标题集中在一起:
<android.support.design.widget.AppBarLayout
android:id="@+id/top_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:theme="@style/ThemeToolbar"
android:layout_width="match_parent"
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>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
ToolBar默认对齐它的标题.为了对齐标题中心,我在工具栏中添加了一个TextView.但它并不完全集中.我试图从左边给出负余量,但它不起作用.
我尝试使用约束布局重建我的工具栏,但有些事情我自己无法解决。
我在另一个布局中使用了包含的工具栏,一切看起来都不错,但是包含的工具栏有奇怪的左边距。我检查了所有边距和填充,但仍然......
图片:
包含工具栏的奇怪边距
如您所见,父工具栏和包含的 new_toolbar 之间有一个空格
活动.xml:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:padding="0dp"
app:titleTextColor="@android:color/white">
<include
android:id="@+id/actionBar"
layout="@layout/new_toolbar" />
</android.support.v7.widget.Toolbar>
<ListView
android:id="@+id/listAccount"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="56dp"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:layout_anchor="@id/listAccount"
app:layout_anchorGravity="bottom"
app:itemBackground="@color/white"
app:itemIconTint="@drawable/selector_bottom_navigation"
app:itemTextColor="@drawable/selector_bottom_navigation"
app:menu="@menu/bottom_navigation"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
new_toolbar.xml
<ImageButton
android:id="@+id/mainIcon"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginLeft="16dp"
android:layout_height="24dp"
android:layout_width="24dp"
android:background="@null"
android:tint="@color/white"
app:srcCompat="@drawable/ic_menu_black_24dp" />
<TextView
android:id="@+id/title"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="14dp"
app:layout_constraintLeft_toRightOf="@+id/mainIcon"
android:layout_marginLeft="32dp"
android:layout_height="24dp"
android:layout_width="wrap_content"
android:fontFamily=" Roboto Semibold"
android:text="Title"
android:textColor="@color/white"
android:textSize="20sp" />
<ImageButton
android:id="@+id/rightIcon1"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="16dp"
android:layout_height="24dp"
android:layout_width="24dp"
android:background="@null"
android:tint="@color/white"
app:srcCompat="@drawable/ic_add_black_24dp" />
<ImageButton
android:id="@+id/rightIcon2" …Run Code Online (Sandbox Code Playgroud) 我在应用程序中使用了自定义工具栏。工具栏的左侧增加了额外的空间。这是我的Xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/customActionBar"
android:layout_height="wrap_content"
android:background="@color/titleBar">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/leftIcon"
android:src="@drawable/abc_btn_rating_star_on_mtrl_alpha"
android:background="@android:color/transparent"
android:layout_weight="0.2"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/actionTitleText"
android:text="@string/app_name"
android:textColor="@color/abc_primary_text_disable_only_material_dark"
android:textSize="@dimen/text_22sp"
android:padding="@dimen/size_12dip"
android:gravity="center_horizontal"
android:layout_weight="0.6"/>
<ImageButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/rightIcon"
android:src="@drawable/abc_btn_rating_star_on_mtrl_alpha"
android:background="@android:color/transparent"
android:layout_weight="0.2"/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?它从屏幕的左边给出了一些边距,但是我没有给出任何边距属性。这是将其膨胀为活动的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
baseViewContent = (LinearLayout) findViewById(R.id.main_activity_content_view);
viewController = new ViewController(this, baseViewContent);
activity = this;
// Set a toolbar to replace the action bar.
android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.customActionBar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)