android实现日志列表,【Android开发】listview+popupwindow实践:日志列表
用listview的標準形式弄一個listview出來,然后創建一個布局item給listview,其中在adapter重寫的getview()方法中把item布局給它。而且可以設置多個集合,在getview中給不同的textview賦值達到數據日志的效果(類似表格)
其中布局文件中:
為了一行三個textview能在豎列對齊,可以設置權重weight為相等,然后gravity=center居中,這時候后面的tv會受到前面的tv字數影響而與下面不對齊,這時候就可以設置width=0dp或者match_parent;
畢竟是日志,最好不要有Listview的點擊事件的效果出來,于是可以在適配器adapter中重寫方法:
@Overridepublic booleanisEnabled(intposition) {//android:clickable=""; 網上說可以這個,沒試過,感覺不行// return super.isEnabled(position);一般情況是這個return false;
}
直接返回false不可點擊。
一般來說總不能一個布局中全都是Listview吧,listview上面可以留下任何一個view,通過這個方法:
listView.addHeaderView(tx);
我再這里設置了listview 3*N 日志的頂部為一個textview,其實也可以是任何一個view的。
(小積累:關于textview的線操作
textview.getPaint().setFlags(Paint.?STRIKE_THRU_TEXT_FLAG?);//中間橫線
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下劃線
textview.getPaint().setAntiAlias(true);//?抗鋸齒
行間距,不是行高!!!
1、android:lineSpacingExtra
設置行間距,如”3dp”。
2、android:lineSpacingMultiplier
設置行間距的倍數,如”1.2″。
)
疑惑:不清楚listview布局顯示和oncreate中的主布局的關系是怎么弄的。
在上一個模仿QQ右上角小加號的案例中,我用的popuwindow里面裝了listview,相關xml并未涉及任何有關listview的代碼,只是新建了一個布局item,然后在adapter中把這個布局給了getview()。
oncreate():直接是setcontentview(R.layout.main);
現在沒有popuwindow,仍然是新建了item(里面沒有listview布局):
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//這里不能item布局,因為這時候還沒有list
。。。。。
setContentView(listView); //必不可少,否則不能顯示出listview
}
最終效果是正常的,注意,如果在item布局里面加入了什么其他東西,那么這個東西每行也會有的。
1、如何讓布局變成view
1最常用:
LayoutInflater inflater=(LayoutInflater)getSystemServi
ce(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.layoutview, null);
2
view=View.inflate(getApplicationContext(),R.layout.buju,null);
3
view=Layoutinflater.from(getApplicationContext()).inflate(R.layout.xx,null);
2、listview初始化布局方式。(另一篇文章)
總結
以上是生活随笔為你收集整理的android实现日志列表,【Android开发】listview+popupwindow实践:日志列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++ OpenCV均值滤波
- 下一篇: matlab 同一坐标系 散点图 t,m