我正在使用一个自定义的actionbar视图,正如你在下面的屏幕截图中看到的,actionbar中有一个空白的灰色空间。我想把它去掉。
我做了什么:
res/values-v11/styles.xml文件
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="actionBarStyle">@style/ActionBarStyle</item>
</style>
res/values/my\u custom\u actionbar.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:height">60dp</item>
</style>
</resources>
显示
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/AppName"
android:theme="@style/AppBaseTheme" >
<!-- activities... etc -->
</application>
主要活动
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
ActionBar actionbar = getSupportActionBar();
actionbar.setDefaultDisplayHomeAsUpEnabled(false);
actionbar.setDisplayHomeAsUpEnabled(false);
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setDisplayShowTitleEnabled(false);
actionbar.setDisplayUseLogoEnabled(false);
actionbar.setHomeButtonEnabled(false);
// Add the custom layout
View view = LayoutInflater.from(this).inflate(R.layout.actionbar, null, false);
actionbar.setCustomView(view);
}
我最近发现了一篇帖子,指出最新版本存在问题。我还更新了adt和sdk到android5。
android actionbar的自定义视图未填充父级
我不知道该怎么办。
编辑(部分解决方案):
不适用于android<=api 10。
android棒棒糖,appcompat actionbar自定义视图不占用整个屏幕宽度
我改变了什么:
使用最新的sdk版本:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21" />
添加 toolbarStyle
:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="actionBarStyle">@style/ActionBarStyle</item>
<item name="android:toolbarStyle">@style/ToolbarStyle</item>
<item name="toolbarStyle">@style/ToolbarStyle</item>
</style>
<style name="ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
<item name="contentInsetStart">0dp</item>
<item name="android:contentInsetStart">0dp</item>
</style>
21条答案
按热度按时间5q4ezhmt1#
试试这个:
我在我的项目中使用了这个代码,祝你好运;
anhgbhbe2#
只需添加
app:contentInsetStart="0dp"
工具栏的xml属性。wydwbb8l3#
eit6fx6z4#
您需要在工具栏中添加此行app2:contentinsetstart=“0dp”
xxls0lw85#
仅添加
app:contentInsetStart="0dp"
删除工具栏上的剩余空间。你的工具栏定义是这样的
看起来像这样
u1ehiz5o6#
您可以如下所示设置自定义视图,而不是在布局中添加工具栏。
u4dcyp6a7#
我找到了另一个更改工具栏样式的解决方案(参考appcompat-v7),代码如下:
eagi6jfj8#
仅添加
android:padding="0dp"
为我工作5cnsuln79#
如果要添加
Toolbar
通过xml,您可以简单地添加xml属性来删除内容插入。20jt8wwn10#
只需修改styles.xml
cygmwpex11#
使用
AppCompatAcitivty
你可以随便用u1ehiz5o12#
Kotlin
laik7k3q13#
这应该足够好了。
yqkkidmi14#
创建如下工具栏:
请按此链接获取更多android提示
4zcjmb1e15#
左边的插图是由工具栏的
contentInsetStart
默认为16dp。将其更改为与关键线对齐。
支持库v24.0.0的更新:
为了匹配材质设计规范,还有一个附加属性
contentInsetStartWithNavigation
默认为16dp。如果还有导航图标,请更改此选项。原来,这是设计库第24版中引入的新材料设计规范的一部分。
https://material.google.com/patterns/navigation.html
但是,可以通过向工具栏小部件添加以下属性来删除多余的空间。
之前:
之后: