当前位置:首页 » 安卓系统 » android滑动表格

android滑动表格

发布时间: 2023-08-04 07:36:17

㈠ Android如何设置列表的最大高度或最多可见个数,超出则以滚动显示

最近在做开发的时候,遇到了这样的一个需求:有一个聊天的模板列表,要求使用弹框的样式展示,尽可能的做到高度自适应。于是我就开始了各种探索:
探索1>动态的的设置弹框的高度,发现无法准确的计算高度,不美观;
探索2>将列表设置成固定高度,发现如果数目少的话就留有空白,不美观;
探索3>动态的设置列表的高度,这个办法还是可以的,使用recycleView做列表,发现高度很难控制,最终放弃了。
探索4>动态的设置列表的高度,只是使用listView实现,最终发现是符合需求的。

好了,闲话不说了,该是上硬菜的时候了。

使用方式

大致思路就是将具体的计算逻辑封装自定义的列表内,这样使用起来的就相当方便,其实就是计算出第一条item的高度,然后乘以最大item的个数就是最终列表展示的高度。当然这也有一个弊端,因为这个思路的前提是假设列表的每个item的高度差距不大,否则列表看着就不那么美观了。

㈡ 如何用安卓开发出复杂表格(类似Excel统计表)

Android实现Excel表格

具体的用法: 写好xml的布局文件:分为头部标题和lsitView两个部分。 头部标题永远排在第一列,其中第一个会滑动所以在布局的时候就不要放在
* com.excel.tool.MyHScrollView里面(MyHScrollView重写的HorizontalScrollView)。
* 其它没有什么就是对其滑动处理的把握。
*
* item里面的数据以及布局,按照正确的布局方式和逻辑处理。
*
* 它的用法其实你当做简单的listView那样操作就可以了。
*
* 排序没有完善,其实都是同一个方法,有待合并。
*
*

java">{
Contextcontext;
privateListViewlistView;
privateLinearLayouttoplayout;
privateMyAdaptermyAdapter;
publicList<DataModel>BaseData;
;
/**
*
*isTouchItem值的改变在
*
*com.excel.tool.MyHScrollView中去判断--解决ListView很容易触发点击事件
*
*里面处理控制表格滑动很容易触发的点击事件问题
*/
=false;
/***
*
*排序的监听
*/
privateLinearLayoutsort_0;
privatebooleanischeck;

privateImageViewsort_triangle;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
viewInit();
dataInit();
}

/***
*
*view的初始化
*
*/
publicvoidviewInit(){

toplayout=(LinearLayout)findViewById(R.id.toplayout);
toplayout.setOnTouchListener(onTouchListener);
horizontalScrollView=(HorizontalScrollView)toplayout
.findViewById(R.id.horizontalScrollView_excel);

listView=(ListView)findViewById(R.id.listView);
listView.setOnItemClickListener(onItemClickListener);
listView.setOnTouchListener(onTouchListener);

sort_0=(LinearLayout)findViewById(R.id.sort_0);
sort_0.setOnClickListener(onClickListener);
sort_triangle=(ImageView)findViewById(R.id.waterlevel_triangle);

}

/***
*
*数据的初始化
*
*/
publicvoiddataInit(){
if(BaseData==null)
BaseData=newArrayList<DataModel>();

myAdapter=newMyAdapter(context,toplayout);

for(inti=0;i<Data.subject.length;i++){
DataModelmodel=newDataModel();
model.setSubject(Data.subject[i]);
model.setChinese(Data.Chinese[i]);
model.setMath(Data.Math[i]);
model.setEnglish(Data.English[i]);
model.setPhysics(Data.Physics[i]);
model.setChemistry(Data.Chemistry[i]);
model.setBiology(Data.Biology[i]);
model.setPE(Data.PE[i]);
BaseData.add(model);
}
myAdapter.setHostBaseData(BaseData);
listView.setAdapter(myAdapter);

}

=newOnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.sort_0:
if(ischeck==false){
//对数据进行排序--传入数据,2表示递减排序,1表示递减
BaseData=Sort.sortchukuData(BaseData,2);
myAdapter.setHostBaseData(BaseData);
ischeck=true;
sort_triangle
.setBackgroundResource(R.drawable.triangle_down);
}else{
BaseData=Sort.sortchukuData(BaseData,1);
myAdapter.setHostBaseData(BaseData);
ischeck=false;
sort_triangle.setBackgroundResource(R.drawable.triangle_up);
}
break;

}

}

};

=newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
if(isTouchItem==false)
return;
CustomerToast.showToast(context,"你点击的是:"+position+"这个下标");

}

};

=newOnTouchListener(){

@Override
publicbooleanonTouch(Viewv,MotionEventevent){
switch(v.getId()){
caseR.id.toplayout:
horizontalScrollView.onTouchEvent(event);
returnfalse;
caseR.id.listView:
horizontalScrollView.onTouchEvent(event);
returnfalse;

}
returnfalse;
}

};

}

效果图片:

㈢ Android开发之头部悬浮的上拉加载,下拉刷新的列表

带时间戳的列表,要求时间悬浮顶部,动态替换顶部时间如下图,如下图,

多布局实现,时间悬浮为一个布局,数据相关内容为一个布局,这里推荐一个 Adapter依赖库BRVAH

根据返回的ItemViewType来加载不同的布局,动态设置时间布局的显示

加载数据时根据时间比较,判断当前数据是头部数据还是普通数据,添加进集合中

注意数据的判断,正确进行头部数据的添加。

将时间转化为xx月xx日的格式

默认情况下,最多只显示四行文本如下

点击之后,展开所有文本

具体实现如下:

设置下拉刷新,下拉加载的布局

具体实现可参考Demo,或者依赖库文档
刷新之后回调

下拉加载,上拉刷新布局如图,具体可运行demo查看

在头部悬浮,结合上拉刷新下拉加载过程中,遇到过上拉加载,导致头部悬浮布局错位,先前采用
SmartRefreshLayout ,由于SmartRefreshLayout上拉加载会将布局向上顶,导致悬浮布局错误,调试无果后,采用 EasyRefreshLayout 。

头部悬浮的上拉加载,下拉刷新的列表主要实现采用 Adapter依赖库BRVAH 及其推荐相关库 EasyRefreshLayout 和 RecyclerView粘性标签库 。其他更多用法,可以自行访问相关库学习。
最后给出 DEMO .

㈣ android gridview怎么做表格

功能:做表格,根据每个单元格的不同含义,给单元格设置不同的背景色;
实现:通过GridView结合BaseAdapter实现;
案例源码
第一步,新建一个Android应用:BaseAdapterDemoActivity;
第二部,重写main.xml,如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>

第三步,在BaseAdapterDemoActivity.java文件中创建MyAdapter,基类是BaseAdapter,如下:

package hello.zcping.adapter;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class BaseAdapterDemoActivity extends Activity {
private GridView mGridView;
private MyAdapter mMyAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
public void setupViews() {
mMyAdapter = new MyAdapter();
mGridView = (GridView) findViewById(R.id.gridview);
mGridView.setAdapter(mMyAdapter);
mGridView.setNumColumns(5);
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView mTextView = new TextView(getApplicationContext());
String[] abc = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
int[] icolor = { Color.GRAY, Color.GREEN, Color.RED, Color.WHITE,
Color.YELLOW, Color.GRAY, Color.GREEN, Color.RED,
Color.WHITE, Color.YELLOW, Color.GRAY, Color.GREEN,
Color.RED, Color.WHITE, Color.YELLOW, Color.GRAY,
Color.GREEN, Color.RED, Color.WHITE, Color.YELLOW };
mTextView.setText(abc[position]);
mTextView.setTextColor(Color.BLACK);
mTextView.setBackgroundColor(icolor[position]);
return mTextView;
}
}
}

效果如下:

㈤ 如何将Android数据库中表格的某一列在下拉列表中显示

在第一个列表添加onchange属性,当你选择发生变化时进行页面提交,

提交以后,你判断从第一个列表中取值.

String str = request.getParameter("area");

当取出的值不为""和null时,即取得了地区代码,01,02......

用这个值,构造SQL语句,检索数据库,

"select 地区 from 表 where 代码 like '"+str+"%' and 代码 != '"+str+"00'"

这样就取得了城市的地区,

是一个ResultSet对象,遍历这个象,将数据添充到第二个下拉列表中

如果你想要看效果的话,给个邮箱,可以做一个JSP的小例子发给你,我白天工作,只能晚上给你回复

邮件已经发出请查收

㈥ android中如何动态创建数据表

在布局中加入表格

<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/table1">

</TableLayout>
之后再 MainActivity 中写入动态添加的代码
public void click(View v) {
if(row.getText().length()>0&&column.getText().length()>0){
//把输入的行和列转为整形
int row_int=Integer.parseInt(row.getText().toString());
int col_int=Integer.parseInt(column.getText().toString());

//获取控件tableLayout
tableLayout = (TableLayout)findViewById(R.id.table1);
//清除表格所有行
tableLayout.removeAllViews();
//全部列自动填充空白处
tableLayout.setStretchAllColumns(true);
//生成X行,Y列的表格
for(int i=1;i<=row_int;i++)
{
TableRow tableRow=new TableRow(MainActivity.this);
for(int j=1;j<=col_int;j++)
{
//tv用于显示
TextView tv=new TextView(MainActivity.this);
//Button bt=new Button(MainActivity.this);
tv.setText("("+i+","+j+")");

tableRow.addView(tv);
}
//新建的TableRow添加到TableLayout

tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1));

}
}else{
Toast.makeText(MainActivity.this,"请输入数值",1).show();
}

}

热点内容
整数是数存储 发布:2025-02-04 11:39:44 浏览:694
12123六位密码是多少 发布:2025-02-04 11:34:43 浏览:797
奥赛编程课 发布:2025-02-04 11:33:59 浏览:376
无法打开共享文件夹 发布:2025-02-04 11:29:50 浏览:635
电脑配置有哪些方面要求 发布:2025-02-04 11:27:38 浏览:525
安卓手机的米加大学什么时候更新 发布:2025-02-04 11:26:39 浏览:705
长城哈弗f5潮版有哪些配置 发布:2025-02-04 11:24:22 浏览:540
编程两阶段 发布:2025-02-04 11:23:00 浏览:154
倒钩编程 发布:2025-02-04 11:13:48 浏览:470
记事本如何加密 发布:2025-02-04 11:13:37 浏览:119