2015-01-05 58 views
1

我正在使用getSupportActionBar().setIcon(R.drawable.ic_transparent);来设置我的工具栏的图标。如何从该图标获取ImageView?我需要图标的Rect从getSupportActionBar获取ImageView()

我正试图用Toolbar而不是旧的动作条来实现this的版本。

编辑:我想出了一个替代解决方案,将TextView和ImageView放在工具栏中,而不是使用内置的徽标和标题。这在Android 5.0上可以正常工作,但文本不会显示在下面的任何东西上。任何建议来解决这个或上述?

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:background="@android:color/transparent" 
    android:elevation="10dp" 
    tools:ignore="UnusedAttribute"> 

    <ImageView 
     android:id="@+id/toolbar_icon" 
     android:layout_width="?android:attr/actionBarSize" 
     android:layout_height="?android:attr/actionBarSize" 
     android:padding="10dp" 
     android:scaleType="fitStart" 
     android:src="@drawable/ic_transparent" /> 

    <TextView 
     android:id="@+id/toolbar_title" 
     style="@style/Base.TextAppearance.AppCompat.Widget.ActionBar.Title" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical" 
     android:text="hello" /> 

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

回答

1

很难说。

正确答案:你不应该说不是由自己(即,如果有不为ImageView getter方法,你应该把它它在哪里)设计的内部部件的混乱。见here

有点多哈哈回答:你可能想试试this custom method。它根据它们的ContentDescription搜索视图。我从来没有尝试过,但它可以工作。

+0

我在哪里可以获得徽标的内容描述?这是与导航图标AFAIK不同的元素。 – sargunster

+0

我认为它应该可以。如果没有,请使用toolbar.setNavigationIcon()而不是actionbar.setIcon()。 – natario

+0

我不想使用导航图标,因为它是可点击的。无论如何,我现在解决了它。 – sargunster

0

我给它看一看,只是看到一个私有函数getActionBarIconView(),它返回一个imageview内的活动NoBoringActionBarActivity只是改变它为public,如果你需要在外部片段中使用它。

0

我通过将我自己的ImageView和TextView添加到工具栏来代替徽标和标题,然后通过将工具栏移动到布局文件的末尾来修复Android 4.0-4.4上的不可见标题。我不知道为什么我必须这样做,但它的工作。