我一直在尝试为我的Spinner实现SwipeRefreshLayout的功能,但什么也没发生。有没有人知道为什么这不起作用? Spinner第一次加载数据没有问题,但是当我执行拖动手势时,没有任何事情发生。没有颜色,没有旋转,没有System.out.println,没有:(
这是我的XML和Java代码。
XML
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="0dp"
android:layout_height="44dp"
android:id="@+id/swipe_main">
<Spinner
android:id="@+id/data_spinner"
android:layout_width="0dp"
android:layout_height="44dp"/>
</android.support.v4.widget.SwipeRefreshLayout>
JAVA
spinner = (Spinner) findViewById(R.id.data_spinner);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, dataArrayList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe_main);
swipe.setColorSchemeColors(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,dataArrayList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
swipe.setRefreshing(false);
System.out.println("Is swipe refreshing?...");
}
});
提前多多感谢!
答案 0 :(得分:1)
SwipeRefreshLayout
可以正常工作。
在您的情况下,当单击Spinner时,它会将列表打开为DropdownPopup
,它是ListPopupWindow
的子类。它不是SwipeRefreshLayout
的子视图,而是一个弹出窗口&amp;因此滑动不起作用。但是,如果在未打开下拉列表的情况下滑过Spinner,它就会起作用。
答案 1 :(得分:0)
请在初始化滑动课程后将以下代码添加到onCreate方法
swipe.post(new Runnable() {
@Override
public void run() {
swipe.setRefreshing(true);
}
});
我希望这会对你有所帮助,请随意发表评论。