我正在制作一个非常自定义的工具栏(不要发疯,它是好的,不是邪恶的,我保证),我想要放置“向上”箭头(当有父活动集时出现的箭头或由于其他原因,并且在自定义位置对Lollipop具有良好的波纹触摸效果。
有没有办法让此箭头作为视图或资源使用工具栏中的其他位置?
我甚至找不到箭头的图像资源。有什么想法吗?
举个例子,我希望top能够做类似的事情:
mToolbar.addView(arrowView, 0);
mToolbar.addView(titleView, 1);
答案 0 :(得分:1)
也许this会有所帮助,看起来像你想要的东西,或者你想要一个具有不同位置和视图的完全自定义按钮?
答案 1 :(得分:1)
如果您不想在Toolbar
中将箭头图标设置为自定义视图,您也可以将内容说明设置为导航按钮,稍后查找视图参考。每个View
或ViewGroup
都支持finding views with content description。
public static View getNavigationIcon(Toolbar toolbar){
//check if contentDescription previously was set
boolean hadContentDescription = TextUtils.isEmpty(toolbar.getNavigationContentDescription());
String contentDescription = !hadContentDescription ? toolbar.getNavigationContentDescription() : "navigationIcon";
toolbar.setNavigationContentDescription(contentDescription);
ArrayList<View> potentialViews = new ArrayList<View>();
//find the view based on it's content description, set programatically or with android:contentDescription
toolbar.findViewsWithText(potentialViews,contentDescription, View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
//Nav icon is always instantiated at this point because calling setNavigationContentDescription ensures its existence
View navIcon = null;
if(potentialViews.size() > 0){
navIcon = potentialViews.get(0); //navigation icon is ImageButton
}
//Clear content description if not previously present
if(hadContentDescription)
toolbar.setNavigationContentDescription(null);
return navIcon;
}
答案 2 :(得分:0)
工具栏本身就是一个ViewGroup,你可以为例如。
添加不同的视图<android.support.v7.widget.Toolbar
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" >
<TextView ..../>
<ImageView ...../>
</android.support.v7.widget.Toolbar>
请参考您的工具栏及其java代码中的元素,以便将其控制为:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
ImageView img = (ImageView) toolbar.findViewById(R.id.imgv);