当前位置: 首页 > 知识库问答 >
问题:

实现新的布局

楚翰
2023-03-14

我正在尝试在Android系统中实现拉刷新功能。为此,我最终使用了支持库中的SwipeRefresLayout。但它并没有像我想的那样工作。

我需要在片段中实现它。这是fragment_home的代码。xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/swipe_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ListView
            android:id="@+id/group_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="45dp" />
    </android.support.v4.widget.SwipeRefreshLayout>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_gravity="bottom"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id" >
    </com.google.android.gms.ads.AdView>
</FrameLayout>

</LinearLayout>

这是放置在缅因州ctivity.java内部的碎片

public static class HomeFragment extends Fragment {
    public static final String ARG_CATEGORY_NUMBER = "category_number";
    private UiLifecycleHelper uiHelper;
    public int currentimageindex = 0;
    private SwipeRefreshLayout swipeLayout;

    public HomeFragment() {
        // Empty constructor required for fragment subclasses
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_home, container,
                false);

        //SWIPE TO REFRESH
        swipeLayout = (SwipeRefreshLayout) container.findViewById(R.id.swipe_container);
        swipeLayout.setOnRefreshListener((OnRefreshListener) getActivity());
        swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
                android.R.color.holo_green_light,
                android.R.color.holo_orange_light,
                android.R.color.holo_red_light);


        ListView hlvCategory = (ListView) rootView
                .findViewById(R.id.group_content);

        AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
        HomeJsonData hjd = new HomeJsonData(getActivity(), hlvCategory,
                mAdView, mDrawerList);

        hjd.execute();

        return rootView;
    }

    //SWIPE TO REFRESH
    public void onRefresh() {
        new Handler().postDelayed(new Runnable() {
            @Override public void run() {
                swipeLayout.setRefreshing(false);
            }
        }, 5000);
    }
}

但这给出了一个错误,就像它无法找到SwipeRefresh布局的类一样。你能建议我如何在这里实施吗??

共有3个答案

冯星阑
2023-03-14

您应该在Fargment中实现OnRefreshListener

public static class HomeFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener

并设置SwipeLayout.setOnReFresListener(this);

邢洋
2023-03-14

请参考此链接,这可能会有所帮助

https://developer.android.com/samples/SwipeRefreshLayoutBasic/src/com.example.android.swiperefreshlayoutbasic/SwipeRefreshLayoutBasicFragment.html

http://antonioleiva.com/swiperefreshlayout/

邹驰
2023-03-14

在您的片段中,我发现问题在于设置刷新侦听器

public static class HomeFragment extends Fragment implements OnRefreshListener{
public static final String ARG_CATEGORY_NUMBER = "category_number";
private UiLifecycleHelper uiHelper;
public int currentimageindex = 0;
private SwipeRefreshLayout swipeLayout;

public HomeFragment() {
    // Empty constructor required for fragment subclasses
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_home, container,
            false);

    //SWIPE TO REFRESH
    swipeLayout = (SwipeRefreshLayout) container.findViewById(R.id.swipe_container);
    swipeLayout.setOnRefreshListener(this);
    swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
            android.R.color.holo_green_light,
            android.R.color.holo_orange_light,
            android.R.color.holo_red_light);


    ListView hlvCategory = (ListView) rootView
            .findViewById(R.id.group_content);

    AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
    HomeJsonData hjd = new HomeJsonData(getActivity(), hlvCategory,
            mAdView, mDrawerList);

    hjd.execute();

    return rootView;
}

//SWIPE TO REFRESH
public void onRefresh() {
    new Handler().postDelayed(new Runnable() {
        @Override public void run() {
            swipeLayout.setRefreshing(false);
        }
    }, 5000);
}

}

并确保已添加supportV4库

如上所述尝试这将帮助你,快乐编码:)

 类似资料:
  • 本文向大家介绍Android RefreshLayout实现下拉刷新布局,包括了Android RefreshLayout实现下拉刷新布局的使用技巧和注意事项,需要的朋友参考一下 项目中需要下拉刷新的功能,但是这个View不是ListView这类的控件,需要ViewGroup实现这个功能,一开始网上大略找了一下,没发现特别合适的,代码也是没怎么看懂,所以决定还是自己写一个。   于是翻出Xlist

  • 本文向大家介绍js瀑布流布局的实现,包括了js瀑布流布局的实现的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现瀑布流布局的具体代码,供大家参考,具体内容如下 原理: 1、瀑布流布局,要求进行布局的元素等宽,然后计算元素的宽与浏览器的宽度之比,得到需要布置的列数。 2、创建一个数组,长度为列数,数组元素为每一列已布置元素的总高度。(一开始为0)。 3、将未布置的元素,依次布置到

  • 本文向大家介绍jquery实现简单的瀑布流布局,包括了jquery实现简单的瀑布流布局的使用技巧和注意事项,需要的朋友参考一下 是开头都会说的原理 瀑布流布局有两种,一种是固定列,一种是非固定列。在此主要记述第一种的实现。 固定列的特征是:无论页面如何缩放,每行的总列数都一致。 一行4列的瀑布流从布局的角度来说,就是4个li标签。通过一定的事件(比如滚动条滚动多少px),然后读取之,再把数据动态地

  • 本文向大家介绍纯js实现瀑布流布局及ajax动态新增数据,包括了纯js实现瀑布流布局及ajax动态新增数据的使用技巧和注意事项,需要的朋友参考一下 本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能。 缺点: 1. 程序不是响应式,不能实时调整页面宽度; 2. 程序中当新增ajax模拟数据图片后,是将整个页面的所有图片都重新定位一次

  • 主要内容:本节引言:,1.要点讲解:,2.代码实现:,3.代码下载:,本节小结:本节引言: 本节是ListView这个小节的最后一节,给大家带来的是ListView多布局Item的实现, 何为ListView Item多布局,打个比方,QQ这种聊天列表: 假如他是用一个ListView做的,那么一个ListView上不就有两种不同的Item咯! 一左一右,嘿嘿,本节就来教大家如何实现ListView的多布局! 1.要点讲解: 重写getItemViewType()方法对应Vi

  • 本文向大家介绍基于jquery实现瀑布流布局,包括了基于jquery实现瀑布流布局的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍了基于jquery实现瀑布流布局的关键代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 使用jquery-1.8.3.min.js,waterfall.js代码如下: 希望本文所述对大家学习有所帮助,谢谢大家的阅读。