SwipeRefreshLayout与微调
我一直在试图为我的微调实现SwipeRefreshLayout的功能,但没有任何事情发生。有没有人有一个想法,为什么这不起作用?微调器第一次加载数据没有问题,但是当我做拖动手势时,什么也没有发生。没有颜色,没有旋转,没有的System.out.println,没有什么:(SwipeRefreshLayout与微调
这是我的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?...");
}
});
谢谢很多提前!
SwipeRefreshLayout
在其子视图上滑动时起作用。
对于您的情况,当单击微调框时,它将打开列表DropdownPopup
,它是ListPopupWindow
的一个子类。这不是SwipeRefreshLayout
的子视图,但弹出窗口&因此刷卡不起作用。但是,如果您在未打开下拉菜单时轻扫微调器,它就会起作用。
这是正确的,@sJy。我仍然在搞清楚如何在打开的Spinner上执行拖拽手势时执行一些操作,这显然不是通过SwipeRefreshLayout进行的。 –
请在下面的代码添加到您的onCreate方法初始化后刷卡urse
swipe.post(new Runnable() {
@Override
public void run() {
swipe.setRefreshing(true);
}
});
我希望这会帮助你,随时发表评论。
Thanks @Mahamadali。我现在可以看到这个小圆圈,但它不会消失。而且,正如sJy指出的那样,这甚至可能不是实施刷卡更新Spinner内部列表的方式。 –
事实上,我根据需要回答你只是想让那个圆圈指示器显示@MarieAmida。 – Mahamadali
您是否在尝试打开微调框时滑动(作为下拉菜单)?我认为这是行不通的。 – sJy
谢谢@sJy。是的,我打开Spinner时想刷一下。所以这不是这样做的,是吧? : -/ –
亲爱的@sJy。我已经在这个http://*.com/questions/23830594/swiperefreshlayout-can-host-only-one-direct-child上实现了答案,在一个RelativeLayout中设置了Spinner,我可以更清楚地看到你的意思。 SwipeRefreshLayout正在工作,但只在选定的一个小元素的区域。你知道如何刷新微调,当它被打开的任何机会? –