2014-10-23 2 views
2

Я сделал заказчик для показа изображений на вкладках для платформы Android. Теперь я хотел бы знать, как я могу удалить нижнюю строку, которая показывает, какая вкладка выбрана. Кроме того, где я могу получить информацию о создании собственных рендерингов? я смотрел на YouTube, но пример с закругленными углами, не показывает много ...Формы Xamarin: скрытие синей линии от выбранной вкладки с помощью CustomTabRenderer для android

namespace Plopsa.Android 
{ 
public class CustomTabRenderer: TabbedRenderer 
{ 
    private Activity _activity; 

    protected override void OnModelChanged(VisualElement oldModel, VisualElement newModel) 
    { 
     base.OnModelChanged(oldModel, newModel); 

     _activity = this.Context as Activity; 
    } 

    // May put this code in a different method - was just for testing 
    public override void OnWindowFocusChanged(bool hasWindowFocus) 
    { 
     // Here the magic happens: get your ActionBar and select the tab you want to add an image 
     ActionBar actionBar = _activity.ActionBar; 

     if (actionBar.TabCount > 0) 
     { 
      ActionBar.Tab tabOne = actionBar.GetTabAt(0); 
      tabOne.SetIcon(Resource.Drawable.icon_tab1); 

      ActionBar.Tab tabTwo = actionBar.GetTabAt(1); 
      tabTwo.SetIcon (Resource.Drawable.icon_tab2); 

      ActionBar.Tab tabThree = actionBar.GetTabAt(2); 
      tabThree.SetIcon(Resource.Drawable.icon_tab3); 

      ActionBar.Tab tabFour = actionBar.GetTabAt(3); 
      tabFour.SetIcon(Resource.Drawable.icon_tab4); 

     } 
     base.OnWindowFocusChanged(hasWindowFocus); 
    } 
} 
+0

же пробл em ... можете ли вы это сделать? –

+0

ActionBar.Tab устарел при использовании API уровня 23 в Xamarin. – 476rick

ответ

0

Вы можете достичь желаемого результата, установив Tabbar.axml класса «андроида: tabIndicatorColor» на ту же величину, что и "андроид: фон.

Ниже приведен код, показывающий желаемый результат с индикатором табуляции, соответствующим цвету фона вкладки. Все это содержится в файле Tabbar.axml. Вы можете зарегистрировать вкладки в MainActivitiy.cs.

Tabbar.axml

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" app:tabTextAppearance="@style/MyCustomTabText" android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Light" app:tabTextColor="@color/primaryOrange" app:tabIndicatorColor="?attr/colorPrimary" app:tabIndicatorHeight="0dp" app:tabSelectedTextColor="@color/primaryOrange" app:tabGravity="fill" app:tabMode="fixed" /> MainActivity.cs

protected override void OnCreate(Bundle bundle) 
     { 

      TabLayoutResource = Resource.Layout.Tabbar; 
      ToolbarResource = Resource.Layout. 

      base.OnCreate(bundle); 

      Xamarin.Forms.Forms.Init(this, bundle); 

      LoadApplication(new App()); 

     } 

Пример Результат

enter image description here