當前位置:首頁 » 安卓系統 » 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();
}

}

熱點內容
linux終端字元 發布:2025-02-04 12:52:40 瀏覽:734
c語言程序設計mobi 發布:2025-02-04 12:51:55 瀏覽:256
rsa演算法c語言 發布:2025-02-04 12:50:36 瀏覽:782
阿里雲伺服器託管破解 發布:2025-02-04 12:47:43 瀏覽:255
汽車都有什麼配置 發布:2025-02-04 12:42:51 瀏覽:455
ons解壓密碼 發布:2025-02-04 12:42:43 瀏覽:777
san存儲監控 發布:2025-02-04 12:42:06 瀏覽:41
apachemodpython 發布:2025-02-04 12:33:53 瀏覽:671
linuxphp安裝mysql 發布:2025-02-04 12:32:55 瀏覽:148
小米手機怎麼擴大配置 發布:2025-02-04 12:27:34 瀏覽:980