91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺析:Pulltorefresh使用中碰到的問題

發布時間:2020-08-06 07:10:00 來源:網絡 閱讀:376 作者:鏡中小白 欄目:移動開發

第一在使用XScrollView布局是,無法在該布局.xml文件,放置內容布局控件,假如放置了會報錯

<com.markmao.pulltorefresh.widget.XScrollView
       android:id="@+id/scroll_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/page_top"
       android:fillViewport="true"
       android:scrollbars="none" >
 
</com.markmao.pulltorefresh.widget.XScrollView>

 

XScrollView,通過看下面的代碼你會發現該控件在初始化時已經去動態添加了一個子控件,假如你再去放置內容布局肯定會報錯,因為android針對ScrollView的默認設置是只允許包含唯一子空間

public class XScrollView extends ScrollViewimplements OnScrollListener {
private LinearLayout mLayout;
   private LinearLayout mContentLayout;
public XScrollView(Context context) {
       super(context);
       initWithContext(context);
    }
 
   public XScrollView(Context context, AttributeSet attrs) {
       super(context, attrs);
       initWithContext(context);
    }
 
   public XScrollView(Context context, AttributeSet attrs, int defStyle) {
       super(context, attrs, defStyle);
       initWithContext(context);
    }
 
   private void initWithContext(Context context) {
       mLayout = (LinearLayout) View.inflate(context,R.layout.vw_xscrollview_layout, null);
       mContentLayout = (LinearLayout)mLayout.findViewById(R.id.content_layout);this.addView(mLayout);
}

 

R.layout.vw_xscrollview_layout 該布局文件的內部,頭部與頂部的咱們先不用管,就看中間的,ID值為content_layout,默認我們的自定義布局是放置嵌套在其中的

<?xml version="1.0"encoding="utf-8"?>
 
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
 
   <LinearLayout
       android:id="@+id/header_layout"
       android:layout_gravity="center_horizontal|top"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" />
 
   <LinearLayout
       android:id="@+id/content_layout"
       android:layout_gravity="center"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" />
 
   <LinearLayout
       android:id="@+id/footer_layout"
       android:layout_gravity="center_horizontal|bottom"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:tag="ttttt"
       android:orientation="vertical" />
 
</LinearLayout>

 

public void setContentView(ViewGroupcontent) {
       if (mLayout == null)
           return;
       if (mContentLayout == null)
           mContentLayout = (LinearLayout)mLayout.findViewById(R.id.content_layout);
       
       if (mContentLayout.getChildCount() > 0)
           mContentLayout.removeAllViews();
       mContentLayout.addView(content);
    }
 
   public void setView(View content) {
       if (mLayout == null)
           return;
       if (mContentLayout == null)
           mContentLayout = (LinearLayout)mLayout.findViewById(R.id.content_layout);
       mContentLayout.addView(content);
}

 

外部引入 ,設置內容的函數有兩個,setContentView,setView

View content =LayoutInflater.from(this).inflate(R.layout.vw_scroll_view_content, null);
scrollview.setContentView()content;

 

下面的布局文件還是用一個使用XScrollView的布局文件,內容布局也放置在該文件中,但是跟XScrollView就不是父子的關系,而是同級的,ID xcollview_content,就是內容布局,接下來就看代碼的

<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/test_parent"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
 
   <com.markmao.pulltorefresh.widget.XScrollView
       android:id="@+id/scroll_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/page_top"
       android:fillViewport="true"
       android:scrollbars="none" >
   </com.markmao.pulltorefresh.widget.XScrollView>
 
    <LinearLayout
       android:id="@+id/xcollview_content"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/scroll_view"
       android:background="@color/transparent"
       android:orientation="vertical" >
 
       <ListView
           android:id="@+id/content_list"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:cacheColorHint="#00000000"
           android:scrollbars="none" />
   </LinearLayout>
 
</RelativeLayout>

 

代碼變動,XScrollView中新增函數 ,需要注意的一個空間它只允許有一個父控件,到此步就結束了第一個問題

public void setDView(View content) {
       if (mLayout == null)
           return;
       if (mContentLayout == null)
           mContentLayout = (LinearLayout)mLayout.findViewById(R.id.content_layout);
 
       ViewParent parent = this.getParent();
       if (parent instanceof RelativeLayout) {
           RelativeLayout r_parent = (RelativeLayout) parent;
           r_parent.removeView(content);
       }
       if (parent instanceof LinearLayout) {
           LinearLayout l_parent = (LinearLayout) parent;
           l_parent.removeView(content);
       }
       mContentLayout.addView(content);
}

 

以上!另外對APP進行全方位的檢測,我都會用這個:www.ineice.com

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

读书| 黔西| 赞皇县| 五华县| 长泰县| 枞阳县| 襄垣县| 师宗县| 奉新县| 左云县| 龙陵县| 客服| 仙桃市| 东乡| 赤城县| 洪湖市| 乡城县| 鹿泉市| 吉水县| 和田市| 阿勒泰市| 晋中市| 武城县| 鄢陵县| 西安市| 晋州市| 工布江达县| 聂拉木县| 宁陕县| 剑阁县| 胶州市| 兴山县| 香河县| 青龙| 澄迈县| 都江堰市| 宁阳县| 陵川县| 鄂温| 阜平县| 金门县|