有关选项卡,我相信大家对此也比较的熟悉,因为市面上的app基本上都离不开选项卡,
所以,这里有必要对选项卡进行一次总结。
首先,我们来看看顶部选项卡:
package com.zihao; import java.util.ArrayList;import java.util.List; import com.zihao.fragment.OneFragment;import com.zihao.fragment.TwoFragmnet; import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.DisplayMetrics;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.TranslateAnimation;import android.widget.ImageView;import android.widget.TextView; public class MainActivity extends FragmentActivity { private ViewPager viewPager;// 页卡内容 private ImageView imageView;// 动画图片 private TextView voiceAnswer, healthPedia, pDected;// 选项名称 private List
|
package com.zihao.fragment; import com.zihao.R; import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; public class OneFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fargment_one, null); return view; }}
|
package com.zihao.fragment; import com.zihao.R; import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; public class TwoFragmnet extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 设置activity的布局 View view = inflater.inflate(R.layout.fragment_two, null); return view; }}
|
xml里面的布局如下:
package com.zihao.fragment; import com.zihao.R; import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; public class TwoFragmnet extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 设置activity的布局 View view = inflater.inflate(R.layout.fragment_two, null); return view; }}
|
|
xml version="1.0" encoding="utf-8"?>
|
这就是全部的顶部选项卡的源码,效果如何大家运行了就可了解。
其次,我们来看看底部选项卡:
package com.andyidea.tabdemo; import android.app.TabActivity;import android.content.Intent;import android.os.Bundle;import android.view.Window;import android.widget.CompoundButton;import android.widget.RadioButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.TabHost; public class MainTabActivity extends TabActivity implements OnCheckedChangeListener{ private TabHost mTabHost; private Intent mAIntent; private Intent mBIntent; private Intent mCIntent; private Intent mDIntent; private Intent mEIntent; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.maintabs); this.mAIntent = new Intent(this,AActivity.class); this.mBIntent = new Intent(this,BActivity.class); this.mCIntent = new Intent(this,CActivity.class); this.mDIntent = new Intent(this,DActivity.class); this.mEIntent = new Intent(this,EActivity.class); ((RadioButton) findViewById(R.id.radio_button0)) .setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button1)) .setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button2)) .setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button3)) .setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button4)) .setOnCheckedChangeListener(this); setupIntent(); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ switch (buttonView.getId()) { case R.id.radio_button0: this.mTabHost.setCurrentTabByTag("A_TAB"); break; case R.id.radio_button1: this.mTabHost.setCurrentTabByTag("B_TAB"); break; case R.id.radio_button2: this.mTabHost.setCurrentTabByTag("C_TAB"); break; case R.id.radio_button3: this.mTabHost.setCurrentTabByTag("D_TAB"); break; case R.id.radio_button4: this.mTabHost.setCurrentTabByTag("MORE_TAB"); break; } } } private void setupIntent() { this.mTabHost = getTabHost(); TabHost localTabHost = this.mTabHost; localTabHost.addTab(buildTabSpec("A_TAB", R.string.main_home, R.drawable.icon_1_n, this.mAIntent)); localTabHost.addTab(buildTabSpec("B_TAB", R.string.main_news, R.drawable.icon_2_n, this.mBIntent)); localTabHost.addTab(buildTabSpec("C_TAB", R.string.main_manage_date, R.drawable.icon_3_n, this.mCIntent)); localTabHost.addTab(buildTabSpec("D_TAB", R.string.main_friends, R.drawable.icon_4_n, this.mDIntent)); localTabHost.addTab(buildTabSpec("MORE_TAB", R.string.more, R.drawable.icon_5_n, this.mEIntent)); } private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon, final Intent content) { return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel), getResources().getDrawable(resIcon)).setContent(content); }}
|
package com.andyidea.tabdemo; import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.widget.TextView; public class AActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("This is A Activity!"); tv.setGravity(Gravity.CENTER); setContentView(tv); } }
|
package com.andyidea.tabdemo; import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.widget.TextView; public class BActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("This is B Activity!"); tv.setGravity(Gravity.CENTER); setContentView(tv); } }
|
其中cActivity、DActivity、EActivity和AActivity、BActivity一样,这里就不上代码了。
下面来看看xml的布局
xml version="1.0" encoding="utf-8"?>
|
xml version="1.0" encoding="UTF-8"?>
|
至此,底部选项卡也完成了,运行后就可以看到结果了
原文链接:http://www.apkbus.com/blog-708270-63596.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1696/viewspace-2814446/ ,如需转载,请注明出处,否则将追究法律责任。