1. 程式人生 > >Android_橫向滑動選單, HorizontalScrollView,Fragment,Viewpager結合使用

Android_橫向滑動選單, HorizontalScrollView,Fragment,Viewpager結合使用

第一:佈局
<HorizontalScrollView
android:id="@+id/hs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
    <LinearLayout
android:id="@+id/linearlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"></LinearLayout
> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/hs"></android.support.v4.view.ViewPager>

第二:主頁面中
package activity.example.com.a09_12;

import 
android.graphics.Color; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import
android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private String[] titles; private List<TextView> list; private HorizontalScrollView hs; private LinearLayout linearlayout; private ViewPager viewpager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取id hs = (HorizontalScrollView)findViewById(R.id.hs); linearlayout = (LinearLayout)findViewById(R.id.linearlayout); viewpager = (ViewPager)findViewById(R.id.viewpager); //建立陣列,存放標題 titles = new String[] { "頭條", "娛樂", "科技", "資訊", "八卦", "北京", "上海", "天津","重慶", "大大燕網" }; //建立集合,存放textview list = new ArrayList<TextView>(); //建立textview for (int i = 0; i < titles.length; i++) { //建立textview TextView textView = new TextView(MainActivity.this); textView.setText(titles[i]); textView.setTextSize(20); textView.setId(i+1000); //點選事件 textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id = view.getId(); viewpager.setCurrentItem(id-1000); } }); //剛程序序第一個預設紅色,其他為黑色 if(i ==0){ textView.setTextColor(Color.RED); }else { textView.setTextColor(Color.BLACK); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(20,10,20,10); //新增到佈局中 linearlayout.addView(textView,layoutParams); //新增到集合 list.add(textView); } //為viewpager設定介面卡 viewpager.setAdapter(new Myadapter(getSupportFragmentManager())); //viewpager的監聽 viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { //滑動改變顏色 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { //list中存的是 textview for (int i = 0; i < list.size(); i++) { if(position==i){ list.get(i).setTextColor(Color.RED); }else{ list.get(i).setTextColor(Color.BLACK); } } //獲取當前的textview TextView textView = list.get(position); //width是每次滑動的距離 int width = textView.getWidth()+10; //讓scrollView滑動 滑動距離是textview之間的間距 hs.scrollTo(width*position,0); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } class Myadapter extends FragmentPagerAdapter{ public Myadapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return Fragment1.getinstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } } }
第三:自建Fragment中
package activity.example.com.a09_12;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.media.session.PlaybackStateCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * Created by 壹顆大金星 on 2017/9/12.
 */
public class Fragment1 extends Fragment{

    public static Fragment getinstance(String title){
        //建立Fragment1
Fragment1 fragment1 = new Fragment1();
        //建立bundle
Bundle bundle = new Bundle();
        //新增值
bundle.putString("title",title);
        //把值新增到Arguments中
fragment1.setArguments(bundle);
        return fragment1;
    }

    @Nullable
    @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //獲取Arguments
Bundle arguments = getArguments();
        //獲取值
String title = arguments.getString("title");
        //建立textview
TextView textView = new TextView(getActivity());
        //設定值
textView.setText(title);
        return textView;
    }
}

相關推薦

Android_橫向滑動選單, HorizontalScrollView,Fragment,Viewpager結合使用

第一:佈局 <HorizontalScrollView android:id="@+id/hs" android:layout_width="match_parent" android:layout_height="wrap_content"> <

橫向滑動選單HorizontalScrollViewfragmentViewpager結合使用

import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPag

橫向滑動選單horizontalscrollview+viewpager+Fragment

MainActivity extends AppCompatActivity implements View.OnClickListener { private HorizontalScrollView scrollView; private LinearLayout linearLayout

橫向滑動選單TabLayout

簡介: 橫向滑動選單是當今主流App中很常見的一種自定義控制元件。 主要用於適配多個分類而出現的,一般常見於分類很多的時候,一屏控制元件無法容納全部分類,這樣我們需要讓使用者去手動滑動,以便檢視螢幕

TabLayout橫向滑動選單code

一、Tablelayout簡介       Tablelayout類以行和列的形式對控制元件進行管理,每一行為一個TableRow物件,或一個View控制元件。當為TableRow物件時,可在TableRow下新增子控制元件,預設情況下,每個子控制元件佔據一列。 當為View時,該View將獨佔一行。 二、

橫向滑動選單

public class MainActivity extends AppCompatActivity {    //所有的選單內容    private List<String> menus=new ArrayList<>();    private

Android Studio 使用ViewPager + Fragment實現滑動選單Tab效果 --簡易版

描述:         之前有做過一個記賬本APP,拿來練手的,做的很簡單,是用Eclipse開發的;         最近想把這個APP重新完善一下,添加了一些新的功能,並選用Android Studio來開發;         APP已經完善了一部分,現在就想把已經做好的功能整理一下,記錄下來。 效果圖

Android 安卓 fragment+viewpager 仿qq介面 實現點選選單切換介面+滑動切換viewpager切換介面

原始碼地址 http://download.csdn.net/detail/zhangjm_123/7902245 最近寫了一個fragment+viewpager仿qq的app,先上圖                   如圖,介面底部有四個textview,分別

jquery 實現 選單橫向滑動以及滑動選單時對應導航選中

1:實現效果 2:css 部分可自己補充; 3:簡單的html部分; @* 菜品導航 *@ <ul class="grin_nav"> <li class="navActive"> <span>酸

Android中使用HorizontalScrollView橫向滑動佈局

在Android中,ListView通常用來實現縱向滾動的列表,而HorizontalScrollView則可以實現橫向滾動的列表項。 引入HorizontalScrollView控制元件很簡單,例如在一個LinearLayout中: <HorizontalScrollView

Android Fragment+Viewpager實現左右滑動和點選 實現DrawerLayout

xml佈局程式碼: <android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:app=“http://schemas.androi

Fragment裡面寫TabLayout橫向滑動

import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.

ViewPager結合TabLayout --- 禁止滑動(點選切換)

【記錄】菜鳥記錄點滴 場景: ViewPager結合TabLayout,兩個Tab項(Tab1, Tab2),需要先在Tab1執行某些操作後,才能滑動ViewPager(點選Tab)切換到Tab2 1. 首先自定義CustomViewPager,可以設定允許/禁止滑動Vi

Android中Fragment+Viewpager實現左右滑動和點選

一.佈局檔案 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.view.ViewPager android:id="@+id/viewpager" andr

【FastDev4Android框架開發】HorizontalScrollView,Fragment,FragmentStatePagerAdapter打造網易新聞Tab及滑動頁面效果(三十六)

轉載請標明出處:(一).前言:            【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org         仿36Kr客戶端開發過程中,因為他們網站上面的新聞文章分類比較多,所以我

Android 自定義 HorizontalScrollView 打造再多圖片(控制元件)也不怕 OOM 的橫向滑動效果

自從Gallery被谷歌廢棄以後,Google推薦使用ViewPager和HorizontalScrollView來實現Gallery的效果。的確HorizontalScrollView可以實現Gallery的效果,但是HorizontalScrollView存在一個很大的問

ViewPager橫向滑動實現頁卡的方法

//////主頁面////// package com.list.viewpager; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import andro

使用ViewPager+GridView實現橫向滑動的效果(二)

            現在正是開始使用ViewPager+GridView方法實現橫向滑動效果;                                       上面就是實現的效果,當然用手去滑動,是可以進行橫向滑動,到時候有興趣的可以把例子程式碼部署

android中scrollview巢狀HorizontalScrollView導致橫向滑動卡頓現象解決

也許會有人遇到,在這裡說下解決方法。方便以後有人糾結這個問題。 開發中經驗會遇到滑動裡面嵌入滑動的問題,但是這種情況下觸控事件就會發生衝突。導致滑動非常卡,甚至出現程式停止響應。這種情況下我們一般需要重寫view。下面給出重新scrollview的方法 ? pub

安卓開發之橫向滑動viewpager(可以禁用或啟用橫向滑動

import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; public class