簡體   English   中英

在我的標簽式活動中添加圖標(android studio)

[英]Add icon in my tabbed activity (android studio)

這里的代碼:

SectionsPagerAdapter:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

@StringRes
private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2, R.string.tab_text_3, R.string.tab_text_4};
private final Context mContext;

public SectionsPagerAdapter(Context context, FragmentManager fm) {
    super(fm);
    mContext = context;

}

@Override
public Fragment getItem(int position) {
    // getItem is called to instantiate the fragment for the given page.
    // Return a PlaceholderFragment (defined as a static inner class below).
    //return PlaceholderFragment.newInstance(position + 1);
    Fragment fragment = null;
    switch(position){

        case 0:
            fragment = new Fragment1();
            break;

        case 1:
            fragment = new Fragment2();
            break;

        case 2:
            fragment = new Fragment3();
            break;

        case 3:
            fragment = new Fragment4();
            break;
    }

    return fragment;
}


@Nullable
@Override
public CharSequence getPageTitle(int position) {
    return mContext.getResources().getString(TAB_TITLES[position]);
}

@Override
public int getCount() {
    // Show 4 total pages.
    return 4;
}
}

占位符片段:

public class PlaceholderFragment extends Fragment {

private static final String ARG_SECTION_NUMBER = "section_number";

private PageViewModel pageViewModel;

public static PlaceholderFragment newInstance(int index) {
    PlaceholderFragment fragment = new PlaceholderFragment();
    Bundle bundle = new Bundle();
    bundle.putInt(ARG_SECTION_NUMBER, index);
    fragment.setArguments(bundle);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    pageViewModel = new ViewModelProvider(this,
            new ViewModelProvider.NewInstanceFactory()).get(PageViewModel.class);
    int index = 1;
    if (getArguments() != null) {
        index = getArguments().getInt(ARG_SECTION_NUMBER);
    }
    pageViewModel.setIndex(index);
}

@Override
public View onCreateView(
        @NonNull LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.fragment_main, container, false);
    final TextView textView = root.findViewById(R.id.section_label);
    pageViewModel.getText().observe(this, new Observer<String>() {
        @Override
        public void onChanged(@Nullable String s) {
            textView.setText(s);
        }
    });
    return root;
}

在此處輸入圖片說明

使用來自 android studio 示例的選項卡式活動與舊版 android studio 庫

我想在文字上方添加圖標,請寫一些例子謝謝。

要在 TabLayout 中的文本上方添加圖標,您可以使用 TabItem 的android:icon屬性。 更多信息可以在材料設計文檔中找到 app:tabIconTint負責設置圖標的色調顏色。

xml 中的一個示例如下所示:

<com.google.android.material.tabs.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/darker_gray"
    app:tabIndicatorColor="@android:color/holo_orange_dark"
    app:tabIndicatorHeight="2dp"
    app:tabMode="fixed"
    app:tabIconTint="@android:color/white"
    app:tabTextColor="@android:color/white">

    <com.google.android.material.tabs.TabItem
        android:id="@+id/tabItem1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:icon="@drawable/ic_home_24dp"
        android:text="Tab1" />

    <com.google.android.material.tabs.TabItem
        android:id="@+id/tabItem2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:icon="@drawable/ic_chat_24dp"
        android:text="Tab2" />

    <com.google.android.material.tabs.TabItem
        android:id="@+id/tabItem3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:icon="@drawable/ic_create_24dp"
        android:text="Tab3" />
</com.google.android.material.tabs.TabLayout>

或以編程方式:

 TabLayout tabLayout = findViewById(R.id.tabLayout);
 tabLayout.getTabAt(0).setIcon(R.drawable.ic_home_24dp);

結果:

表格布局

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM