一、使用碎片來進行一個最佳實踐,即我們寫一個新聞的app
1.首先先建立一個新聞類
package com.example.fragmentbestpractice; ? public class News { private String title; private String content; ? public String getTitle() { return title; } ? public void setTitle(String title) { this.title = title; } ? public String getContent() { return content; } ? public void setContent(String content) { this.content = content; } }
2.然后我們設定一個界面,也就是顯示新聞的界面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/news_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="end" android:textSize="18sp" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="15dp" android:paddingBottom="15dp" /> ? </LinearLayout>
?
這里面有幾個新的屬性設定是我們之前沒有見到過的,首先來看android:singLine設定為true代表的就是TextView只能單行顯示;android:ellipse用于設定當文本內容超出控制元件的寬度的時候,文本的縮略方式,這里指定成end表示在尾部進行縮略?,
3.接下來需要創建一個新聞串列的配接器,讓這個配接器繼承自ArrayAdapter,并將泛型指定為News類,下面我們新建NewsAdapter
package com.example.fragmentbestpractice; ? import java.util.List; ? import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; ? public class NewsAdapter extends ArrayAdapter<News>{ private int resourceId; public NewsAdapter(Context context,int textViewResourceId,List<News> objects) { super(context,textViewResourceId,objects); resourceId = textViewResourceId; } @Override public View getView(int position,View convertView,ViewGroup parent) { News news = getItem(position); View view; if(convertView == null) { view = LayoutInflater.from(getContext()).inflate(resourceId,null); }else { view = convertView; } TextView newsTitleText = (TextView) view.findViewById(R.id.news_title); newsTitleText.setText(news.getTitle()); return view; } }

可以看出來,在getView()方法中,我們獲取到了相應位置上的News類,并且讓新聞的標題在串列中?進行顯示,
4.撰寫新聞內容部分的代碼
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/visibility_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:visibility="invisible"> <TextView android:id="@+id/news_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="10dp" android:textSize="20sp" /> <ImageView android:layout_width="match_parent" android:layout_height="1dp" android:scaleType="fitXY" android:src="@drawable/split_line" /> <TextView android:id="@+id/news_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:padding="15dp" android:textSize="18sp" /> </LinearLayout> <ImageView android:layout_width="1dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:scaleType="fitXY" android:src="@drawable/split_line_vertical" /> ? </RelativeLayout>
?
三、原始碼:
1.專案地址
https://github.com/ruigege66/Android/tree/master/FragmentBestPractise
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人公眾號,僅用于學習交流,后臺回復”禮包“,獲取大資料學習資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/4157.html
標籤:Android
