3

アクションバータブのフォントをカスタムフォントに変更する方法を見つけようとしていますが、私の人生ではそれを理解できません。Tab オブジェクトの基になる TextView にアクセスする方法はないようです。

もちろん、もう 1 つの解決策は、独自のカスタム ActionBar タブ レイアウトを定義し、それを ActionBar.Tab オブジェクトのカスタム ビューとして設定することですが、これも機能させるのは非常に難しいようです。

次の XML レイアウト ファイルをカスタム タブ レイアウトとして使用するとします。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center_vertical"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text_tab"
        style="@style/Widget.Sherlock.ActionBar.TabText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"/>

</LinearLayout>

アクションバー タブは、重力要求をすべて無視して、テキストをタブ ビューの上部に配置しているようです。これは、デフォルトでテキストが垂直方向に中央揃えされる標準のアクションバー タブとは大きく異なります。

誰かが a) アクションバー タブにカスタム Typeface を提供する簡単な方法、または b) カスタム タブ ビューの正しいレイアウトのいずれかを提案できれば、私は非常に感謝しています。

ありがとう。

4

4 に答える 4

0

最初にこの例を見てください: [ http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/][1]

次に、レイアウトを作成し、次のコードで tab_title という名前を付けます。

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/action_custom_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Custom title"
android:textColor="#fff"
android:textSize="18sp"
android:paddingTop="5dp" />

次に、Androidhive プロジェクトの MainActivity の onCreate() メソッドで、次のように変更します。

 // Adding Tabs
    for (String tab_name : tabs) {
        actionBar.addTab(actionBar.newTab().setText(tab_name)
                .setTabListener(this));
    }

に:

// Adding Tabs
    for (String tab_name : tabs) {

        Tab tab = actionBar.newTab();
        TextView customTabView = (TextView)getLayoutInflater().inflate(R.layout.tab_title, null);
        customTabView.setText(tab_name);
        Typeface typface2=Typeface.createFromAsset(getAssets(),"fonts/titr.TTF");
        customTabView.setTypeface(typface2);            
        tab.setTabListener(this);           
        tab.setCustomView(customTabView);
        actionBar.addTab(tab);
    }

(font/titr.TTF をアセット ディレクトリとファイル名に変更する必要があることは言うまでもありません)

于 2014-12-25T08:44:52.843 に答える
0

相対レイアウトを使用します。線形レイアウトは android:layout_gravity="center_vertical" を使用できません..中央の水平方向のみを使用できます..

相対レイアウトを使用する場合は、次を使用できます

android:layout_centerInParent="true"
于 2013-03-30T00:18:49.980 に答える