Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 切换到支持库26和AppBarActivity到AppCompatActivity后压缩的工具栏菜单项_Android_Android Layout_Android Support Library_Android Toolbar_Android Support Design - Fatal编程技术网

Android 切换到支持库26和AppBarActivity到AppCompatActivity后压缩的工具栏菜单项

Android 切换到支持库26和AppBarActivity到AppCompatActivity后压缩的工具栏菜单项,android,android-layout,android-support-library,android-toolbar,android-support-design,Android,Android Layout,Android Support Library,Android Toolbar,Android Support Design,昨天我切换到了新的支持库26,我还不得不将不推荐的AppBarActivity更改为AppCompatActivity,因为它已经不存在了 我遇到了与下面链接中描述的相同的问题,但“清理”或“重建”无法解决该问题。 我所有的图标都在hdpi和xhdpi中。还有一些在mdpi和ldpi中 那么为什么我的工具栏图标会被挤压呢 以下是我在所有布局中使用的代码,这些布局使用了所有以前的支持库(我总是使用最新版本!): 这是在升级之后: 更新: 当我将ImageView直接放在工具栏中时,它正在工作

昨天我切换到了新的支持库26,我还不得不将不推荐的AppBarActivity更改为AppCompatActivity,因为它已经不存在了

我遇到了与下面链接中描述的相同的问题,但“清理”或“重建”无法解决该问题。

我所有的图标都在hdpi和xhdpi中。还有一些在mdpi和ldpi中

那么为什么我的工具栏图标会被挤压呢

以下是我在所有布局中使用的代码,这些布局使用了所有以前的支持库(我总是使用最新版本!):

这是在升级之后:

更新: 当我将ImageView直接放在工具栏中时,它正在工作:

 <android.support.design.widget.AppBarLayout
    android:id="@+id/myAppBar"
    style="@style/myAppBarStyle"
    android:layout_width="match_parent"

    android:layout_height="wrap_content">

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_awesome_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="?attr/bt_expenses" />


    </android.support.v7.widget.Toolbar>


</android.support.design.widget.AppBarLayout>

UDATE 2: 对我来说,ActionMenuItemView第26版中的代码更改似乎是个问题,因为它没有调整图标大小以保持宽度和高度相等:

见:
public void setIcon(可绘制图标)

这两个动作条不同。最小高度是从属性设置的,但两者的高度值都设置为包裹内容

第一个栏由第二行km组成,它通过包装两个文本视图来扩展应用程序栏的高度。第二个图标上的图标会缩小,因为它们的属性可能也设置为“包裹内容”


如果在更改为AppCompatActivity后显示两个具有相同设计和比较的应用程序栏,效果会更好。

解决方法似乎是使用Android Studio中的Image Asset Studio再次生成图标资源。我以前没有使用过这个工具,而是手动将图标图像放在不同分辨率的文件夹中。似乎com.android.support:appcompat-v7:26.0.0更改了图像分辨率,我的旧hdpi图标是72x72,生成的hdpi图标现在是48x48。

请参阅android问题跟踪器上的此线程,我在其中解释了错误:。我还重新编译了库来解决这个问题。附件:


编辑:问题已在26.0.2上解决,很抱歉,我不完全理解您的答案。“两个应用程序条”是什么意思?我只有一个。我也无法想象这是一个问题,因为我在“活动”中有相同的行为,没有“字幕”,只是更新了我的图片,使它们来自相同的状态(但是,这没有什么区别)@stefan,你能尝试用vector drawable替换加油站drawable吗?并检查它是否正确缩放?还用于将svg转换为Android drawable。第一个屏幕上的图像比文本和点大,第二个屏幕上的所有图像都相等。您可以在android.support.v7.widget.Toolbar:
Nope中为标题添加边距。这只是将标题向下移动。图标仍然垂直居中,并具有文本的大小。。。请检查我的更新。当我在工具栏中放置ImageView时,图标是正确的。我不认为这是一个“解决方法”,我认为这是解决方案。这也发生在我身上,因为我的图像太大了,一开始就看不见。这引起了我的注意,现在我的图像大小正确了。对我来说,这是sdk中的一个bug,您只需检查ActionMenuItemView的代码即可查看setIcon()。不适当调整图标大小的原因是什么?如果它们太大,可以调整它们的大小,但两边应该保持相同的大小!我切换回以前的版本,因为我所有的图像都有文档中描述的大小:hdpi=72px xhdpi 96px安卓团队已经意识到了这个问题。在问题trackerGood上加上星号,可以看到这个问题在26.0.1中仍然没有得到解决。谷歌干得好@stefan我已经重新编译了appcompat-v7库并修复了这个问题。我在这里附上了AAR文件:我已经看到了,但我会等到它被正式修复。我不需要来自新支持库的任何东西。我只是想保持最新,这在使用Android/Google时总是一件坏事。不管怎样,你做得很好!谢谢
<item
        android:id="@+id/action_logbook"
        android:icon="?attr/icon_book"
        android:orderInCategory="100"
        android:title="@string/logbook"
        yourapp:showAsAction="ifRoom"/>
<attr name="icon_book" format="reference"/>
  <style name="MyBaseThemeLight" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="icon_book">@drawable/icon_book_white</item>
</style>
 <android.support.design.widget.AppBarLayout
    android:id="@+id/myAppBar"
    style="@style/myAppBarStyle"
    android:layout_width="match_parent"

    android:layout_height="wrap_content">

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_awesome_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="?attr/bt_expenses" />


    </android.support.v7.widget.Toolbar>


</android.support.design.widget.AppBarLayout>