HorizontalScrollView+Fragment

package com.example.scoreview;

import java.util.ArrayList;
import java.util.List;

import android.graphics.Color;
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.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.fragment.MyFragment;

public class MainActivity extends FragmentActivity implements OnClickListener{
    private ViewPager mypager;
    private LinearLayout lin;
    private List<Fragment> list;
    private HorizontalScrollView hor;
    private int mscreenwidth;
    TextView tv;
    String data[]={"舍内要闻","本社介绍","履行职责","自身建设","社员风采","历史回眸"};
    String url[] = {
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=1",
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=2",
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=3",
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=4",
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=5",
            "http://www.93.gov.cn/93app/data.do?channelId=2&startNum=6" };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WindowManager wm=getWindowManager();
        mscreenwidth=wm.getDefaultDisplay().getWidth();
        init();
    }
    private void init() {
        // TODO Auto-generated method stub
        mypager=(ViewPager) findViewById(R.id.mypager);
        lin=(LinearLayout) findViewById(R.id.lin);
        hor=(HorizontalScrollView) findViewById(R.id.myscrollview);
        //数据
        initdata();
        
        FragmentManager fm=getSupportFragmentManager();
        mypager.setAdapter(new FragmentPagerAdapter(fm) {
            
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return list.size();
            }
            
            @Override
            public Fragment getItem(int arg0) {
                // TODO Auto-generated method stub
                return list.get(arg0);
            }
        });
        mypager.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                setselect(arg0);
            }
            
            

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }
    private void initdata() {
        // TODO Auto-generated method stub
        //设置滚动的数据;
         setdata();
         setTextviewData();
         setselect(0);
    }
    private void setselect(int position) {
        // TODO Auto-generated method stub
        for (int i = 0; i < lin.getChildCount(); i++) {
            TextView childAt = (TextView) lin.getChildAt(position);
            // 字体的长度;
            int k = childAt.getMeasuredWidth();
            // 从字体到屏幕左边的距离;
            int l = childAt.getLeft();

            int s = l + k / 2 - mscreenwidth / 2;
            hor.smoothScrollTo(s, 0);

            TextView child = (TextView) lin.getChildAt(i);
            if (position == i) {

            child.setTextColor(Color.RED);

            } else {
            child.setTextColor(Color.BLACK);
            }
        }
    }
    private void setTextviewData() {
        // TODO Auto-generated method stub
        for (int i = 0; i < data.length; i++) {
            tv=new TextView(getApplicationContext());
            tv.setText(data[i]);
            tv.setPadding(10, 10, 10, 10);
            tv.setTextSize(20);
            lin.addView(tv);
            tv.setTextColor(Color.BLACK);
            tv.setOnClickListener(this);
        }
    }
    //设置滚动的数据;
    private void setdata() {
        // TODO Auto-generated method stub
        list = new ArrayList<Fragment>();
        for (int i = 0; i < data.length; i++) {
            MyFragment fms=new MyFragment(url[i]);
            list.add(fms);
        }
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int m=(Integer) tv.getTag();
        if(tv.getTag()!=null){
            TextView tv=(TextView) lin.getChildAt(m);
            if(tv==v){
                mypager.setCurrentItem(m);
            }
        }
    }


}

 

 

  xml布局

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <HorizontalScrollView
        android:id="@+id/myscrollview"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:scrollbars="none"
        >
        <LinearLayout
            android:id="@+id/lin"
            android:layout_width="fill_parent"
               android:layout_height="40dp"
            />
    </HorizontalScrollView>
    <android.support.v4.view.ViewPager
         android:id="@+id/mypager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        
    </android.support.v4.view.ViewPager>
</LinearLayout>

 

、//Myfragment类

 

 

package com.example.fragment;

import java.util.List;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

import com.bawei.network.NetWorkUtil;
import com.bawei.vo.Mydata;
import com.bawei.vo.Supper;
import com.example.adapter.MyBaseAdatpter;
import com.example.scoreview.R;
import com.google.gson.Gson;

public class MyFragment extends Fragment {
    private String url;
    private ListView listView;
    
    private Handler h=new Handler(){
        public void handleMessage(android.os.Message msg) {
            String ss = (String) msg.obj;

            Gson gson = new Gson();
            Supper supper = gson.fromJson(ss, Supper.class);
            final List<Mydata> list = supper.getData();
            listView.setAdapter(new MyBaseAdatpter(list, getActivity()));
//            listView.setOnItemClickListener(new OnItemClickListener() {
//
//                @Override
//                public void onItemClick(AdapterView<?> arg0, View arg1,
//                        int arg2, long arg3) {
//                    // TODO Auto-generated method stub
//                
//                    
//                    Intent intent=new Intent(getActivity(),XiangqingActivity.class);
//                    
//                    intent.putExtra("id", list.get(arg2).getID());
//                    startActivity(intent);
//                    
//                }
//            });

        };
    };
    public MyFragment(String url) {
        this.url=url;
    }

    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.activity_fragment, null);
        listView = (ListView) view.findViewById(R.id.listvew);
        new Thread() {
            public void run() {
                String s = NetWorkUtil.httpclient(url);
                h.sendMessage(h.obtainMessage(1, s));

            };
        }.start();
        return view;
    }
}

 

fragment适配器

 

package com.example.adapter;

import java.util.List;

import com.bawei.vo.Mydata;
import com.example.scoreview.R;
import com.lidroid.xutils.BitmapUtils;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MyBaseAdatpter extends BaseAdapter{
List<Mydata> list;
Context context;

    public MyBaseAdatpter(List<Mydata> list, Context context) {
    super();
    this.list = list;
    this.context = context;
}

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        if (convertView==null) {
            
            convertView=View.inflate(context, R.layout.activity_fragment_item, null);
            holder=new ViewHolder();
            holder.layout1=(LinearLayout) convertView.findViewById(R.id.linn1);
            holder.layout2=(LinearLayout) convertView.findViewById(R.id.linn2);
            holder.textView1=(TextView) convertView.findViewById(R.id.text1);
            holder.textView2=(TextView) convertView.findViewById(R.id.text2);
            holder.textView3=(TextView) convertView.findViewById(R.id.text3);
            holder.textVieww1=(TextView) convertView.findViewById(R.id.text11);
            holder.textVieww2=(TextView) convertView.findViewById(R.id.text22);
            holder.textVieww3=(TextView) convertView.findViewById(R.id.text33);
        
        holder.imageView=(ImageView) convertView.findViewById(R.id.image);
        convertView.setTag(holder);
        }
        else {
            holder=(ViewHolder) convertView.getTag();
            
        }
        if (list.get(position).getIMAGEURL()!=null) {
            
            holder.layout2.setVisibility(View.VISIBLE);
            holder.layout1.setVisibility(View.GONE);
            holder.textVieww1.setText(list.get(position).getTITLE());
            holder.textVieww2.setText(list.get(position).getSUBTITLE());
            holder.textVieww3.setText(list.get(position).getSHOWTIME());
            BitmapUtils utils=new BitmapUtils(context);
            utils.display(holder.imageView, list.get(position).getIMAGEURL());
            
        }else {
            holder.layout1.setVisibility(View.VISIBLE);
            holder.layout2.setVisibility(View.GONE);
            holder.textView1.setText(list.get(position).getTITLE());
            holder.textView2.setText(list.get(position).getSUBTITLE());
            holder.textView3.setText(list.get(position).getSHOWTIME());
        }
        
        return convertView;
    }
class ViewHolder{
    TextView textView1;
    TextView textView2;
    TextView textView3;
    
    
    TextView textVieww1;
    TextView textVieww2;
    TextView textVieww3;
    ImageView imageView;
    
    LinearLayout layout1;
    LinearLayout layout2;
    
}
}
 

fragment的adapter——item布局

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout
          android:id="@+id/linn1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:visibility="gone"
        >
        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
           <TextView
            android:id="@+id/text3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
    </LinearLayout>

    <LinearLayout
          android:layout_width="match_parent"
        android:layout_height="match_parent"
       android:id="@+id/linn2"
        android:visibility="gone"
        >
        <ImageView
            android:id="@+id/image"
            android:layout_width="50dp"
            android:layout_height="50dp"
           
            android:background="@drawable/ic_launcher"
            />
        <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
    
        >
        <TextView
            android:id="@+id/text11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
        <TextView
            android:id="@+id/text22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
           <TextView
            android:id="@+id/text33"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfsf"
            />
    </LinearLayout>
        
    </LinearLayout>
    
</LinearLayout>

转载于:https://www.cnblogs.com/yr520/p/5336683.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值