1. 程式人生 > >Android典型介面設計(3)——訪網易新聞實現雙導航tab切換

Android典型介面設計(3)——訪網易新聞實現雙導航tab切換

public class NewsFragment extends Fragment implements  OnPageChangeListener {
    private View view=null;
    private RadioGroup rgChannel=null;
    private ViewPager viewPager;
    private HorizontalScrollView hvChannel=null;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
if(view==null){ view=inflater.inflate(R.layout.news_fragment_layout, null); rgChannel=(RadioGroup)view.findViewById(R.id.rgChannel); viewPager=(ViewPager)view.findViewById(R.id.vpNewsList); hvChannel=(HorizontalScrollView)view.findViewById(R.id.hvChannel); rgChannel.setOnCheckedChangeListener(
new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { viewPager.setCurrentItem(checkedId); } }); initTab(inflater); initViewPager(); } ViewGroup parent
=(ViewGroup)view.getParent(); if(parent!=null){ parent.removeView(view); } return view; } private List<Fragment> newsChannelList=new ArrayList<Fragment>(); private NewsPageFragmentAdapter adapter; private void initViewPager(){ List<Channel> channelList=ChannelDb.getSelectedChannel(); for(int i=0;i<channelList.size();i++){ NewsChannelFragment fragment=new NewsChannelFragment(); Bundle bundle=new Bundle(); bundle.putString("cname", channelList.get(i).getName()); fragment.setArguments(bundle); newsChannelList.add(fragment); } adapter=new NewsPageFragmentAdapter(super.getActivity().getSupportFragmentManager(), newsChannelList); viewPager.setAdapter(adapter); viewPager.setOffscreenPageLimit(2); viewPager.setCurrentItem(0); viewPager.setOnPageChangeListener(this); } private void initTab(LayoutInflater inflater){ List<Channel> channelList=ChannelDb.getSelectedChannel(); for(int i=0;i<channelList.size();i++){ RadioButton rb=(RadioButton)inflater. inflate(R.layout.tab_rb, null); rb.setId(i); rb.setText(channelList.get(i).getName()); RadioGroup.LayoutParams params=new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); rgChannel.addView(rb,params); } rgChannel.check(0); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int idx) { setTab(idx); } private void setTab(int idx){ RadioButton rb=(RadioButton)rgChannel.getChildAt(idx); rb.setChecked(true); int left=rb.getLeft(); int width=rb.getMeasuredWidth(); DisplayMetrics metrics=new DisplayMetrics(); super.getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); int screenWidth=metrics.widthPixels; int len=left+width/2-screenWidth/2; hvChannel.smoothScrollTo(len, 0); } }

相關推薦

Android典型介面設計(3)——新聞實現導航tab切換

public class NewsFragment extends Fragment implements OnPageChangeListener { private View view=null; private RadioGroup rgChannel=null; p

Android典型介面設計(4)——使用ActionBar+Fragment實現tab切換

public class TBActivity extends Activity { private ActionBar actionBar; protected void onCreate(Bundle savedInstanceState) { super.onC

Android典型介面設計(6)——ActionBar Tab+ViewPager+Fagment實現滑動導航

public class MachineFragment extends Fragment { private String title; public void setArguments(Bundle bundle) { title=bundle.getSt

Android典型介面設計(5)——使用SlidingMenu和DrawerLayout分別實現左右側邊欄

public class MainActivity extends Activity { private DrawerLayout drawerLayout; private ActionBarDrawerToggle toggle; private ActionBar ac

Android典型介面設計(8) ——ViewPager+PagerSlidingTabStrip實現導航

public class NewsFragment extends Fragment { @Override public void onAttach(Activity activity) { super.onAttach(activity); }

Android典型介面設計——ViewPage+Fragment實現區域頂部tab滑動切換

public class MainActivity extends FragmentActivity implements OnPageChangeListener{ private ViewPager viewPager; private RadioGroup rgChannel=n

Android典型介面設計——FragmentTabHost+Fragment實現底部tab切換

一、問題描述   在上次博文中,我們使用RadioGroup+ViewPage+Fragmen實現了頂部滑動導航(檢視文章:http://www.cnblogs.com/jerehedu/p/4607599.html#dxjmsj ),接下來我們使用FragmentTabHost+F

Android典型介面設計(7) ——DrawerLayout+Fragement+ViewPager+PagerTabStrip實現導航

public class MainActivity extends ActionBarActivity implements OnItemClickListener{ private DrawerLayout drawerLayout; private ActionBarDrawe

Python 3爬蟲雲(五)——每天進步一點點(正則表達式下篇之HTML標簽)

tdd htm python swf sofm pts 正則表達 eal href 51忠酶9euka杖淪28炊http://jz.docin.com/ngaxf40277 嵌擲Ic白冉qgw抑亢84http://jz.docin.com/fejci232 gw2d4永

放心嗨!Android 9 Pie發布,盾加固已第一時間適配

工作 工程師 ffffff 谷歌 時間 water 科技 RoCE image 自5月份谷歌在年度開發者大會上首次亮相Android 9 P後,其正式版Android 9 Pie昨天正式發布,網易雲易盾移動安全已在昨天第一時間裏進行了最終適配。 早在今年初,易盾就做好了相關

Android使用者介面設計

View 檢視   佔據螢幕上的一塊矩形區域,負責提供元件繪製和事件處理的方法。Android 比喻成窗戶,每塊玻璃就是一個 view。   View 類是所有UI元件的基類,位於 android.view 包中;文字框元件 TextView 是 View 類的子類,位於 android.widget 包

Android 使用者介面設計之TextView

5.富文字   先說一下什麼是富文字,富文字就是對文字中一些特殊文字或者圖片的特殊顯示。例如我們我們發一段話“你還沒有還我100塊錢。”這句話我們要強調“100塊錢”這是後我們可以把它顯示為特殊的顏色,這其實就是一種富文字。有時候我們QQ聊天經常發表情,其實這也是一種富文字。富文字

Android 使用者介面設計之EditText

layout佈局檔案中相應的EditText要新增如下語句:   android:password="true"   結果: 輸入限制   控制輸入的內容,例如我們要定義一個輸入手機號的輸入框,這是我們就不允許輸入字母或者漢字,我們只允

Android使用者介面設計之建立列表檢視程式

列表檢視(ListView)是Android平臺下用於顯示不定數量的資料最有用的檢視控制元件之一。在這個教程中,我們將向你展示如何使用ListView來瀏覽文章列表。 在之前的文章中,你看到了許多關於不同佈局控制元件的教程。應用程式本身非常簡單:它將顯示文章標題列表,當

3整除—網際網路2018筆試題

題目描述:給定一個數列:1,12,123,…,12345678910,1234567891011…,找出指定區間能被3整除的個數。 輸入描述:輸入兩個數字l和r,代表數列的第l個數和第r個數 輸入描述:輸出區間內能被三整除的個數 例: 輸入:2 5 輸

android介面設計筆記(二)實現頂部底部二級導航

下載demo:https://github.com/linliangliang/BottomNavagationBar 二級導航欄的實現是在之前學習導航欄的兩種實現方式的基礎上實現的。 1、https://blog.csdn.net/qq_25066049/article/details/8

Kali Linux 2017.3 安裝雲音樂

環境:Kali Linux 2017.3、網易雲音樂1.1.0 amd64 ubuntu版 背景:某天更新系統後發現網易雲歌詞字型成方塊了,所以準備更新一下網易雲音樂,安裝後發現打不開。。。按照以前的

Android UI介面設計

     今天要寫的是一個簡單的手機資訊頁面顯示,用Android中的layout來實現,主要運用了相對佈局和線性佈局來完成,然後是手機資訊介面的國際化。                                                        

Android開發介面設計---音樂播放器介面

採用線性佈局  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

Python 3爬蟲雲(九)—— 獲取一個歌手的熱門50首歌詞

上一篇已經介紹瞭如何獲取一首歌的歌詞,今天那就介紹一下如何通過一個歌手的id獲取他的熱門50首的歌詞吧。 1.找入口 要爬取一位歌手的歌曲,首先在網易雲中要獲得歌曲的id,在這推薦用火狐瀏覽器,其中的firebug外掛對網頁的解析很有幫助。 這裡以爬取陳奕