Как создать пользовательский api для tabhost и tabwidget?

Я создал прокручиваемую панель вкладок, используя tabhost, tabwidget и horizontalscrollbar, а layout_gravity – внизу. Теперь я хочу создать для этого пользовательский API , так что любой может использовать api для изменения текста, высоты, ширины и т. Д., Согласно их реквизиции.

Tabbar.java

package com.tabbar.project; import android.app.TabActivity; import android.content.Intent; import android.content.res.Resources; import android.graphics.Color; import android.os.Bundle; import android.widget.TabHost; public class Tabbar extends TabActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // TabHost will have Tabs TabHost tabHost = getTabHost(); /* TabSpec used to create a new tab. * By using TabSpec only we can able to setContent to the tab. * By using TabSpec setIndicator() we can set name to tab. * TabSpec setContent() is used to set content for a particular tab.*/ //adding tabbar items TabHost.TabSpec spec; Intent intent; intent = new Intent().setClass(this, FirstActivity.class); spec = tabHost.newTabSpec("first").setIndicator("Contact", res.getDrawable(R.drawable.contact_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SecondActivity.class); spec = tabHost.newTabSpec("second").setIndicator("Dial", res.getDrawable(R.drawable.dial_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, ThirdActivity.class); spec = tabHost.newTabSpec("third").setIndicator("Movie", res.getDrawable(R.drawable.movie_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, FourthActivity.class); spec = tabHost.newTabSpec("fourth").setIndicator("gellary", res.getDrawable(R.drawable.gellary_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, FifthActivity.class); spec = tabHost.newTabSpec("fifth").setIndicator("Opera", res.getDrawable(R.drawable.opera_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SixthActivity.class); spec = tabHost.newTabSpec("sixth").setIndicator("Contacts", res.getDrawable(R.drawable.contact_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SeventhActivity.class); spec = tabHost.newTabSpec("seventh").setIndicator("Dial", res.getDrawable(R.drawable.dial_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, EightActivity.class); spec = tabHost.newTabSpec("eight").setIndicator("Movie", res.getDrawable(R.drawable.movie_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, NinthActivity.class); spec = tabHost.newTabSpec("ninth").setIndicator("Gellary", res.getDrawable(R.drawable.gellary_img)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, TenthActivity.class); spec = tabHost.newTabSpec("tenth").setIndicator("Opera", res.getDrawable(R.drawable.opera_img)).setContent(intent); tabHost.addTab(spec); // set the width of tab for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){ tabHost.getTabWidget().getChildAt(i).getLayoutParams().width = 64; } //provide a method/function for setting height // set the Height of tab for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){ tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 60; } // set the background color of tab (#50000000-transparent,#7392B5) for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){ tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#50000000")); } //tabHost.getTabWidget().getChildAt(0).; tabHost.setCurrentTab(0); } } 

main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" android:background="@drawable/zero" > <TabHost android:id="@android:id/tabhost" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="visible"> <HorizontalScrollView android:layout_width="wrap_content" android:layout_height="fill_parent" android:scrollbars="none"> <TabWidget android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@android:id/tabs" android:layout_gravity="bottom" android:tabStripEnabled="false" /> </HorizontalScrollView> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@android:id/tabcontent"/> </TabHost> </LinearLayout> 

Во-первых, определите, какой список функций вы хотите поддерживать. Кажется, у вас уже есть идеи. Затем создайте общедоступные методы в своем классе Tabbar , чтобы пользователи могли его настроить.

Идея может быть

 public void setTabHeight(int dip) { //Code to set tab height goes here } 

Тогда люди могут иметь доступ к вашему Tabber и функциям, которые вы им хотите иметь.

Объем функциональности и общность использования Tabbar будут соответствовать вашим фантазиям и навыкам дизайна.

Intereting Posts
Gradle – Android Studio строит слишком медленное приложение с несколькими приложениями Высота вкладки ActionBarSherlock не настраивается на Jelly Bean Как решить размер экрана Android для разных мобильных устройств? Android + pthread + c ++ = SIGSEGV Темы Android: определение цветов / градиентов в «baseTheme.xml», использование внутри элементов управления, переопределение в «subThemeX.xml» Android: textisselectable не работает в окне TYPE_SYSTEM_ALERT Как синхронизировать большие списки между клиентом и сервером Использование API android camera2 для отображения подачи камеры Просмотр видеопотока RTSP через WebView в приложении для Android Android: Пользовательская горизонтальная анимация Progress Bar Попросите пользователя включить Wi-Fi Id id идентификатора и идентификатор ppublisher одинаковы? Эффекты перехода к диалогу Когда-то не получал push-уведомление GCM в мобильном телефоне Android 3 – Добавить фрагмент программно: исключение из нелегального состояния