相关疑难解决方法(0)

Android:从操作栏的自定义布局中删除左边距

我正在使用自定义操作栏视图,如下面的屏幕截图所示,操作栏中有一个空白的灰色空间.我想删除它.

在此输入图像描述

我做了什么:

RES /值-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>
Run Code Online (Sandbox Code Playgroud)

RES /值/ my_custom_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>
Run Code Online (Sandbox Code Playgroud)

表现

<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>
Run Code Online (Sandbox Code Playgroud)

主要活动

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);
}
Run Code Online (Sandbox Code Playgroud)

我发现了一篇最近的帖子,指出最新版本存在问题.我还将ADT和SDK更新到Android 5.

Android ActionBar的自定义视图未填充父级

我不知道该怎么办.

编辑(部分解决方案):

不适用于Android <= API 10. …

xml android android-actionbar-compat

249
推荐指数
11
解决办法
10万
查看次数

在Android 4.0+上删除操作栏左侧图标周围的填充

我想删除标准android 4.0+操作栏左侧图标周围的填充.我正在设置图标:

getActionBar().setIcon(getResources().getDrawable(R.drawable.ic_action_myapp));
Run Code Online (Sandbox Code Playgroud)

我希望图标垂直填充空间,触摸顶部和底部,类似于soundcloud应用程序的作用:

android android-layout android-actionbar

25
推荐指数
3
解决办法
2万
查看次数

Android ActionBar的自定义视图未填充父级

类似于这里的问题,但有一些关键的区别.最值得注意的是,在最新的支持库发布之前,已接受的答案确实有效.

这是自定义视图布局:

<?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"
              android:background="#FFDD0000">

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在,当您尝试仅设置自定义视图时:

  ActionBar actionBar = getSupportActionBar();
  actionBar.setDisplayShowCustomEnabled(true);
  actionBar.setCustomView(R.layout.actionbar);
Run Code Online (Sandbox Code Playgroud)

您最终得到的自定义布局不会填满整个宽度: 在此输入图像描述

为了使这个更感兴趣,我在不同的应用程序中有类似的设置:

  ActionBar actionBar = getSupportActionBar();
  actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
  actionBar.setCustomView(R.layout.actionbar);
  actionBar.setDisplayHomeAsUpEnabled(false);
  actionBar.setHomeButtonEnabled(false);
Run Code Online (Sandbox Code Playgroud)

确实有效,直到我将支持库更新到v21.一旦我做了,我最终在以前没有遇到过这个问题的应用程序上遇到了同样的问题.

所以,我的问题是,有没有办法使用最新的支持库使自定义视图操作栏填充宽度?

编辑在做了一些更多的测试之后,我发现用targetSdkVersion/compileSdkVersion设置为19进行编译并且为库提供v7:19.0.1(或v7:19.1.0)没有这个问题(有主页图标,这是用后面的代码处理),确认这绝对是最新版本的问题.

android android-support-library android-actionbar-compat android-5.0-lollipop

19
推荐指数
3
解决办法
1万
查看次数

Android:自定义操作栏,如何使用整个宽度?

这是我的自定义操作栏的图像:

在此输入图像描述

我想使用整个宽度,我已经在互联网上寻找解决方案但我没有任何帮助.

这是我的动作栏.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarSave"
        android:src="@drawable/ic_ok_b"
        android:nestedScrollingEnabled="true"
        android:layout_alignParentRight="true"
        android:background="#ffb0afaf"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarDelete"
        android:src="@drawable/ic_trash"
        android:nestedScrollingEnabled="true"
        android:layout_toLeftOf="@+id/invActionBarSave"
        android:layout_marginRight="5dp"
        android:background="#ffb0afaf"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:singleLine="true"
        android:text="?????? ???? ??? ????"
        android:textSize="18dp"
        android:textColor="#ff000000"
        android:id="@+id/invActionBarTitle"
        android:gravity="center|right"
        android:layout_toLeftOf="@+id/invActionBarDelete"
        android:layout_toRightOf="@+id/invActionBarHome"
        android:layout_marginRight="20dp"
        android:layout_marginLeft="10dp" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/invActionBarHome"
        android:src="@drawable/ic_back_b"
        android:nestedScrollingEnabled="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="false"
        android:paddingLeft="10dp" />

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:indeterminateOnly="false"
        style="@style/ProgressBar.Horizontal"
        android:indeterminate="true"
        android:id="@+id/invActionBarProgressBar"
        android:visibility="gone"
        android:layout_below="@+id/invActionBarDelete"
        android:paddingLeft="10dp" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的java代码:

getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

9
推荐指数
2
解决办法
7948
查看次数

动作栏中的Android中心自定义视图

尝试为我的操作栏设置自定义视图,但问题是它没有填满操作栏的整个宽度,这使得我可以使对象居中.如何在我的操作栏中设置自定义视图以填满整个操作栏?

设置我的操作栏的代码:

actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
actionBar.setCustomView(inflater.inflate(R.layout.actionbar_layout, null));
Run Code Online (Sandbox Code Playgroud)

还有我的actionbar_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#EDEDED">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="#FFFFFF"
    android:text="Testing"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-actionbar-compat

7
推荐指数
1
解决办法
7455
查看次数

更新到Android棒棒糖后的ActionBar样式

我昨天通过选择API19开发自定义ActionBar我更新了支持库和项目到API21,导致我遇到问题.在我的操作栏中有一个菜单到箭头按钮,我不需要和动作栏样式的更改.

更新前: 在此输入图像描述

更新后: 在此输入图像描述

以下是style.xml

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    </style>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>

        <item name="actionBarItemBackground">@drawable/selectable_background_apptheme</item>
        <item name="popupMenuStyle">@style/PopupMenu.Apptheme</item>
        <item name="dropDownListViewStyle">@style/DropDownListView.Apptheme</item>
        <item name="actionBarTabStyle">@style/ActionBarTabStyle.Apptheme</item>
        <item name="actionDropDownStyle">@style/DropDownNav.Apptheme</item>
        <item name="actionBarStyle">@style/ActionBar.Solid.Apptheme</item>
        <item name="actionModeBackground">@drawable/cab_background_top_apptheme</item>
        <item name="actionModeSplitBackground">@drawable/cab_background_bottom_apptheme</item>
        <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Apptheme</item>

        <!-- Light.DarkActionBar specific -->
        <item name="actionBarWidgetTheme">@style/Theme.Apptheme.Widget</item>

    </style>

    <!-- Base application theme for Full screen Activities -->
    <style name="AppThemeFullScreen" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>
    </style>

    <!-- Button Style -->
    <style name="ButtonAppTheme" parent="android:Widget.Button">
        <item name="android:background">@drawable/btn_background</item>
        <item name="android:minHeight">48dip</item>
        <item name="android:minWidth">64dip</item>
        <item name="android:textColor">@color/btn_text_color_default</item>

    </style>


    <style name="ActionBar.Solid.Apptheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@drawable/ab_solid_apptheme</item> …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar-compat android-actionbaractivity android-5.0-lollipop

6
推荐指数
1
解决办法
7613
查看次数

如何在Android上制作工具栏需要全宽?

结果如下:http://i.stack.imgur.com/VgbZT.png.我希望它位于状态栏和全宽下方,就像这个:http://i.stack.imgur.com/FFQJN.png.

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity">

    <!--<android.support.v7.widget.Toolbar-->
        <!--android:id="@+id/toolbar"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_width="match_parent"-->
        <!--android:minHeight="?attr/actionBarSize"-->
        <!--android:background="?attr/colorPrimary" />-->

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:contentInsetEnd="0dp"
        app:contentInsetStart="0dp"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary" >
    </android.support.v7.widget.Toolbar>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

public class MyActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_card_list);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
Run Code Online (Sandbox Code Playgroud)

我已经读过这个,但它仍然没有用.

android android-toolbar

5
推荐指数
1
解决办法
7933
查看次数

如何在Android中的ActionBar中删除左填充边距的额外空间?

我一直在拉我的头发反对这个左边的填充/边距只是不要消失问题,即将成为秃头......对此的解决方案将不胜感激!我已经尝试过 SO 的这些答案,它确实移动了一些填充,但不是全部。基本上所有的答案都说将 contentInsetStart 和 contentInsetLeft 设置为 0dp。这确实删除了左侧的一些填充,但我仍然看到一个填充,它只是比我将 contentInsetStart 和 contentInsetLeft 设置为 0dp 之前小。此解决方案适用于三星手机,但不适用于我测试过的任何平板电脑,例如 Nexus 7、Nexus 9、Dell Venus 8 等。 在此处输入图片说明

我相信很多人都有这个问题,这些是我尝试过的答案,但仍然在上面显示的左侧留下填充/边距。

Android:从操作栏的自定义布局中删除左边距

Android Lollipop、AppCompat ActionBar 自定义视图不占用整个屏幕宽度

Android API 21 工具栏填充

我的活动/操作栏左侧的填充/边距 - 不知道它来自哪里,无法删除它

如何删除默认布局的填充/边距

如何在 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)

layout android margin padding android-actionbar

5
推荐指数
1
解决办法
3942
查看次数