安卓老子 2016-09-17 10:01 采纳率: 50%
浏览 2451
已采纳

Android 客户端 TextView表格分页显示数据

由于接口里面最多有100行数据(可能少于100),显示数据的xml布局文件是在线性布局下面定义了TextView
,不是用的ListView,现在表格里面能显示100行数据出来,现在想在手机上面每个页面显示
10行数据,下面要有页码显示最好,求大神给我指点,本人实在太菜,下面是表格的布局文件,只定义了一行,在代码里面动态添加的,本人QQ:1194660702,帮我解决这个
问题,本人发大红包

<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/ct2r_root"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFEEEEEE"
android:orientation="vertical"
android:padding="1px"
>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/ct2r_1"
        android:layout_width="130dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>
    <TextView
        android:id="@+id/ct2r_2"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_3"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_4"
        android:layout_width="350dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_5"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_6"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_7"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_8"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <RelativeLayout
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333">

        <TextView
            android:id="@+id/check"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_centerInParent="true"
            android:layout_margin="0dp"
            android:background="@drawable/slidingmenu_ct2r_check"
            android:gravity="center"/>
    </RelativeLayout>

    <TextView
        android:id="@+id/ct2r_10"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_11"
        android:layout_width="200dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>

    <TextView
        android:id="@+id/ct2r_12"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333"
        android:gravity="center"/>


    <RelativeLayout
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:layout_column="1"
        android:layout_margin="1px"
        android:background="#FF333333">

        <TextView
            android:id="@+id/feedback"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_centerInParent="true"
            android:layout_margin="0dp"
            android:background="@drawable/feed_back"
            android:gravity="center"/>
    </RelativeLayout>



</LinearLayout>

  • 写回答

2条回答 默认 最新

  • C盘无限大 2016-09-17 10:46
    关注

    RecyclerView可以完成你的需求

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            MyScrollView rootView = new MyScrollView(this);
            rootView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    
            HorizontalScrollView horizontalScrollView = new HorizontalScrollView(this);
            horizontalScrollView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    
            RecyclerView recyclerView = new RecyclerView(this){
                @Override
                protected void onMeasure(int widthSpec, int heightSpec) {
                    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                            MeasureSpec.AT_MOST);
                    super.onMeasure(widthSpec, expandSpec);
                }
            };
            recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
    
    
            recyclerView.setAdapter(new MyAdapter());
    
    
            horizontalScrollView.addView(recyclerView);
            rootView.addView(horizontalScrollView);
            setContentView(rootView);
    
        }
    
        class MyAdapter extends RecyclerView.Adapter {
            private int size=50;
            @Override
            public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(TestActivity.this).inflate(R.layout.activity_test, parent, false);
                TextView name = (TextView) view.findViewById(R.id.ct2r_1);
                view.setTag(name);
                return new RecyclerView.ViewHolder(view) {};
            }
    
            @Override
            public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
                if (getItemViewType(position) ==1)
                ((TextView)holder.itemView.getTag()).setText("这是第 "+ position);
                else {
                    ((TextView) holder.itemView.getTag()).setText("这是第 " + position / 10 + "页");
                    holder.itemView.setBackgroundColor(Color.BLUE);
                }
            }
    
            @Override
            public int getItemViewType(int position) {
                return (position == 0 || position % 10 !=0) ? 1:2;
            }
    
            @Override
            public int getItemCount() {
                int num = size / 10;
                return size+num;
            }
        }
    
        class MyScrollView extends ScrollView {
    
        private int downY;
        private int mTouchSlop;
    
        public MyScrollView(Context context) {
            super(context);
            mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        }
    
        public MyScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
            mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        }
    
        public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        }
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent e) {
            int action = e.getAction();
            switch (action) {
                case MotionEvent.ACTION_DOWN:
                    downY = (int) e.getRawY();
                    break;
                case MotionEvent.ACTION_MOVE:
                    int moveY = (int) e.getRawY();
                    if (Math.abs(moveY - downY) > mTouchSlop) {
                        return true;
                    }
            }
            return super.onInterceptTouchEvent(e);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择