android 图标选择用什么布局,android - 使用ViewPager的图标选项卡,如何布局它们? 通过附加一些布局文件 - 堆栈内存溢出...

这篇博客是一位Android新手的学习记录,内容涉及如何在Android应用中设计并实现带有Tab的功能。作者展示了如何初始化ViewPager,设置ActionBar,以及创建TabPagerAdapter来加载不同的Fragment。虽然在寻找教程时遇到了困难,但作者已经成功地将Tab图标和文字添加到ActionBar,并实现了Tab的点击切换页面功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我是Android新手,设计包含“Tabs”的Android应用程序。 我设计了这个:

197069360a6cc93e971dc4fcc3aed060.png

但我想这样设计,

a29b917c6ec996d7c183f38a65eac49f.png

我认为必须有方法,就像使用自定义适配器填充列表一样,但是我没有找到任何要做的事情,Android Web上提供的教程超出了我的想法范围,因为我是新的...

我的代码:

Tabs.xml

Tabs.java

package com.example.medbleep;

import TabsManager.TabPagerAdapter;

import android.app.ActionBar;

import android.app.ActionBar.Tab;

import android.app.FragmentTransaction;

import android.os.Bundle;

import android.support.v4.app.FragmentActivity;

import android.support.v4.view.ViewPager;

import android.widget.ImageView;

import android.widget.TextView;

public class Tabs extends FragmentActivity implements ActionBar.TabListener {

private ViewPager viewPager;

private TabPagerAdapter mAdapter;

private android.app.ActionBar actionBar;

private int numberOfTabs = 5;

// Tab titles

private int[] tabIcons = {R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home};

private String[] tabText = { "Home", "units", "conferences", "couses", "more" };

ImageView imageView;

TextView textView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.tabs);

imageView = (ImageView)findViewById(R.id.tab_icon);

textView = (TextView)findViewById(R.id.tab_title);

// Initialization

viewPager = (ViewPager) findViewById(R.id.pager);

viewPager.setBackgroundColor(getResources().getColor(R.color.darkLoginBlue));

actionBar = getActionBar();

mAdapter = new TabPagerAdapter(getSupportFragmentManager(),

numberOfTabs);

viewPager.setAdapter(mAdapter);

actionBar.setHomeButtonEnabled(false);

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// Adding Tabs

for (int i = 0; i<5 ; i++) {

actionBar.addTab(actionBar.newTab().setText(tabText[i])

.setIcon(getResources().getDrawable(tabIcons[i]))

.setTabListener(this));

//actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_layout).setText(tabText[i]).setIcon(tabIcons[i]).setTabListener(this));

//actionBar.setLogo(tabIcons[4]);

//actionBar.setIcon(tabIcons[i]);

//actionBar.setTitle(tabText[i]);

}

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override

public void onPageSelected(int position) {

// on changing the page

// make respected tab selected

actionBar.setSelectedNavigationItem(position);

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

});

}

@Override

public void onTabReselected(Tab arg0, FragmentTransaction arg1) {

// TODO Auto-generated method stub

}

@Override

public void onTabSelected(Tab tab, FragmentTransaction arg1) {

// TODO Auto-generated method stub

// on tab selected

// show respected fragment view

viewPager.setCurrentItem(tab.getPosition());

}

@Override

public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {

// TODO Auto-generated method stub

}

}

TabPagerAdapter.java

package TabsManager;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentStatePagerAdapter;

public class TabPagerAdapter extends FragmentStatePagerAdapter{

int mNumOfTabs;

public TabPagerAdapter(FragmentManager fm, int NumOfTabs) {

super(fm);

this.mNumOfTabs = NumOfTabs;

}

@Override

public Fragment getItem(int position) {

switch (position) {

case 0:

HomeTabFragment homeTabFragment = new HomeTabFragment();

return homeTabFragment;

case 1:

UnitTabFragment unitTabFragment = new UnitTabFragment();

return unitTabFragment;

case 2:

ConferencesTabFragment conferencesTabFragment = new ConferencesTabFragment();

return conferencesTabFragment;

case 3:

CoursesTabFragment coursesTabFragment = new CoursesTabFragment();

return coursesTabFragment;

case 4:

MoreTabFragment moreTabFragment = new MoreTabFragment();

return moreTabFragment;

default:

return null;

}

}

@Override

public int getCount() {

return mNumOfTabs;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值