我使用getSupportActionBar().setIcon(R.drawable.ic_transparent);
设置工具栏的图标。如何从该图标中获取ImageView
?我需要图标的Rect
。
我尝试使用Toolbar
而不是旧的操作栏来实现this的版本。
<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>
答案 0 :(得分:1)
很难说。
正确答案:你不应该混淆不是由你自己设计的内部小部件(即,如果那不是ImageView
的getter方法,你应该把它放在原来的位置)。请参阅here。
更多hacky回答:您可能想尝试this custom method。它会根据ContentDescription
搜索视图。我从未尝试过,但它可以奏效。
答案 1 :(得分:0)
我看一看,只看到一个私有函数getActionBarIconView(),它返回活动内部的一个imageview NoBoringActionBarActivity,如果需要在外部片段中使用它,只需将其更改为public。
答案 2 :(得分:0)
我通过将自己的ImageView和TextView添加到工具栏来替换徽标和标题来解决它,然后通过将工具栏移动到布局文件的末尾来修复android 4.0-4.4上的隐形标题。我不确定为什么我必须这样做,但它确实有效。