一、首先编写按钮的布局文件
代码:
<?xml version="1.0" encoding="utf-8"?> <!-- ListView 底部“更多” --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@drawable/wb_item_bg"> <TextView android:id="@+id/txt_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="@string/more" android:textSize="20sp" android:paddingTop="10dp" android:paddingBottom="10dp" /> <LinearLayout android:id="@+id/llyt_loading" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:visibility="gone"> <ProgressBar android:id="@+id/progress_more" style="@style/myProgressStyle" android:layout_width="30px" android:layout_height="30px" android:layout_centerVertical="true" android:layout_toRightOf="@id/txt_more" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textSize="20sp" android:text="@string/loading" /> </LinearLayout> </RelativeLayout>图片:
二:在activity中加载而这个布局
首先获取这个布局,实例化应该放在init()中,
private HomeMsgAdapter homeMsgAdapter;
MoreMsgView=View.inflate(this,R.layout.the_more_layout,null); //inflate()的作用就是将一个用xml定义的布局文件查找出来,注意与findViewById()的区别,inflate是加载一个布局文件,而findViewById则是从布局文件中查找一个控件。
listView.addFooterView(MoreMsgView,null,true);
三:实现点击这个布局文件,改变ui,比如之前是,显示更多,点击之后是正在加载中
1.创建各个控件的实例对象
private LinearLayout linearLayoutMore; private TextView textViewMore;
2.在点击事件中,进行可见性修改
MoreMsgView=View.inflate(this,R.layout.the_more_layout,null);
MoreMsgView.setOnClickListener(new MoreMsgView());
/** *更多布局文件的点击事件 */ class MoreMsgView implements View.OnClickListener{ @Override public void onClick(View v) { textViewMore.setVisibility(View.GONE); linearLayoutMore.setVisibility(View.VISIBLE); } }
效果图: