i have checked , implemented following links: android action bar tabs, styling icon , text together , can see image above text. want increase height of tabbar icon have larger size. checked how change action bar size & https://blog.xamarin.com/material-design-for-your-xamarin-forms-android-apps/. , tried implement appcompatactivity in xamarin.forms project. @ first, android activity derived global::xamarin.forms.platform.android.formsapplicationactivity
, converted global::xamarin.forms.platform.android.formsappcompatactivity
. , custom renderer implemented tabbedpage
. know must converted tabbedpagerender
appcompatactivity
. updated renderer too. custom renderer not being called. , can't change height of tabbar placed in actionbar
appcompatactivity
. let me know implemented wrong. thank you.
if have code, please post it.
in activity, check if have
formsappcompatactivity.toolbarresource = resource.layout.toolbar; formsappcompatactivity.tablayoutresource = resource.layout.tabs;
in oncreate method, need toolbar.xml , tabs.xml in /resources/layout folder.
in renderer class, make sure add
[assembly: exportrenderer(typeof (yourtabbedpage), typeof (yourtabbedpagerenderer))]
tabbedpagerenderer doesn't expose tablayout you, reflection needed
public class yourtabbedpagerenderer : tabbedpagerenderer { private tablayout _mytablayout;
protected override void onelementchanged(elementchangedeventargs<tabbedpage> e) { base.onelementchanged(e); var fieldinfo = typeof (tabbedpagerenderer).getfield("_tablayout", bindingflags.instance | bindingflags.nonpublic); system.diagnostics.debug.assert(fieldinfo != null, "fieldinfo != null"); _mytablayout = (tablayout) fieldinfo.getvalue(this); // uncomment disable scrolling //var propinfo = typeof (tabbedpagerenderer).getproperty("useanimations", bindingflags.instance | bindingflags.nonpublic); //propinfo.setvalue(this, false); if (e.oldelement != null) { } if (e.newelement != null) { if (_mytablayout.tabcount != this.element.children.count) return; (int index = 0; index < this.element.children.count; ++index) { _mytablayout.gettabat(index).settext(""); fileimagesource icon = this.element.children[index].icon; if (string.isnullorempty(icon)) continue; var imageview = new appcompatimageview(this.context); imageview.setpadding(4, 4, 4, 4); var drawable = resourcemanager.getdrawablebyname(icon.file); imageview.setimageresource(drawable); _mytablayout.gettabat(index).setcustomview(imageview); } _mytablayout.gettabat(0).select(); } }
}
Comments
Post a Comment