当前位置:首页 » 安卓系统 » android下拉控件

android下拉控件

发布时间: 2024-08-05 21:52:08

A. androidUI鎺т欢Spinner涓嬫媺凿滃崟鎺т欢涓ょ崭娇鐢ㄦ柟娉

浣跨敤android鍒朵綔琛ㄥ崟涓涓嬫媺凿滃崟镓浣跨敤镄勬带浠禨pinner鍦╝ndroid涓涓烘垜浠瀹氢箟浜嗗崄鍒嗗ソ鐢ㄥソ鐪嬬殑镙峰纺锛屽悓镙风亩鍗曚娇鐢ㄦ柟娉曚篃链変袱绉嶃傚垎鍒鍙浠ユ坠宸ユ瀯寤烘暟鎹鍜屼娇鐢▁ml銮峰彇鏁版嵁锛屽綋铹跺疄闄呴”鐩涓闇瑕佽幏鍙栫绣缁沧暟鎹銆傚彟澶朣pinner鎺т欢闇瑕佸疄鐜疠nItemSelectedListener鎺ュ彛𨱒ュ畬鎴怱pinner涓嬫媺凿滃崟镄勫姛鑳姐傚叿浣扑娇鐢ㄦ柟娉曞备笅銆
涓銆佹坠宸ユ瀯寤篠pinner涓嬫媺妗嗘暟鎹
鎸夌収姝e父娴佺▼锛岄栧厛搴斿厛鎶婂瑰簲镄刅iew鏄剧ず鍑烘潵锛岄渶瑕佺敤鍒瘪extView鍜孲pinner鎺т欢鍗冲彲锛屾墍鍦‵orm Widgets鍗冲彲镓惧埌锛岀浉鍏充唬镰佸拰绀轰緥锲惧备笅銆

锲犱负涓嬫媺凿滃崟闇瑕佹暟鎹锛屾墍浠ユ垜浠鍏堢敤List灏嗘暟鎹婧愭斁杩涘幓锛屽畾涔変负getDataSource()銆备唬镰佺ず渚嫔备笅銆

链钖庤佸垱寤篠pinnerActivity锛屽湪銮峰彇UI鎺т欢涔嫔悗锛岀劧钖庡啀鍒涘缓Spinner鎺т欢阃傞厤鍣ㄥ苟瀹氢箟涓嬫媺妗嗙殑镙峰纺锛岃繖閲屾敞镒廇rrayAdapter瀹氢箟镄勬硾鍨嬫槸String褰㈠纺镄勶纴钥屼笖android宸茬粡涓烘垜浠瀹氢箟濂戒简涓嬫媺妗嗙殑镙峰纺锛屾瘆濡俛ndroid.R.layout.simple_spinner_dropdown_item锛屽洜姝ゆ垜浠鐩存帴璋幂敤鍗冲彲瀹屾垚Spinner涓嬫媺妗嗘带浠剁殑镎崭綔銆傜浉鍏充唬镰佸备笅銆
浜屻佷娇鐢╔ML鏋勫缓Spinner涓嬫媺妗嗘暟鎹
浣跨敤XML鏋勫缓Spinner涓嬫媺妗嗘暟鎹锛岀涓姝ヨ缮鏄瑕佸厛灏哣iew瑙嗗浘琛ㄧ幇鍑烘潵锛屽拰鏂规硶涓浠g爜鐩稿悓銆傜洿鎺ョ収鎼鍗冲彲銆
杩欎釜鏂规硶鐢ㄥ埌XML锛屽洜姝ゅ氨闇瑕佸埌string.xml涓瀹氢箟鏁版嵁婧愶纴绀轰緥浠g爜濡备笅锛

链钖庡氨鏄鍦ㄥ垱寤虹殑SpinnerActivity涓鐩存帴銮峰彇string.xml涓镄勬暟鎹婧愶纴杩欓噷闇瑕佹敞镒忕殑鏄蹇呴’瀹炵幇骞舵敞鍐岀洃钖鍣∣nItemSelectedListener锛屾墠鑳戒娇涔嫔墠镄勬搷浣灭敓鏁堛俿pinner.setOnItemSelectedListener(this);銆傚彟澶栵纴阃傞厤鍣ˋrrayAdapter濡傛灉鐢ㄥ埌createFromResource銮峰彇鏁版嵁婧愶纴灏卞繀椤诲畾涔堿rrayAdapter镄勬硾鍨嬩负CharSequence褰㈠纺锛屽惁鍒欐姤阌欍傚叿浣扑唬镰佸拰瀹炵幇鏁堟灉锲惧备笅銆

B. android 下拉滚动页面怎么实现

以下是我自己花功夫编写了一种非常简单的下拉刷新实现方案,现在拿出来和大家分享一下。相信在阅读完本篇文章之后,大家都可以在自己的项目中一分钟引入下拉刷新功能 最近项目中需要用到ListView下拉刷新的功能,一开始想图省事,在网上直接找一个现成的,可是尝试了网上多个版本的下拉刷新之后发现效果都不 怎么理想。有些是因为功能不完整或有Bug,有些是因为使用起来太复杂,十全十美的还真没找到。因此我也是放弃了在网上找现成代码的想法,自己花功夫编写 了一种非常简单的下拉刷新实现方案,现在拿出来和大家分享一下。相信在阅读完本篇文章之后,大家都可以在自己的项目中一分钟引入下拉刷新功能。 首先讲一下实现原理。这里我们将采取的方案是使用组合View的方式,先自定义一个布局继承自LinearLayout,然后在这个布局中加入下拉 头和ListView这两个子元素,并让这两个子元素纵向排列。初始化的时候,让下拉头向上偏移出屏幕,这样我们看到的就只有ListView了。然后对 ListView的touch事件进行监听,如果当前ListView已经滚动到顶部并且手指还在向下拉的话,那就将下拉头显示出来,松手后进行刷新操 作,并将下拉头隐藏。原理示意图如下: 那我们现在就来动手实现一下,新建一个项目起名叫PullToRefreshTest,先在项目中定义一个下拉头的布局文件pull_to_refresh/apk/res/android" xmlns:tools="schemas/tools" android:id="@+id/pull_to_refresh_head" android:layout_width="fill_parent" android:layout_height="60dip" > <LinearLayout android:layout_width="200dip" android:layout_height="60dip" android:layout_centerInParent="true" android:orientation="horizontal" > <RelativeLayout android:layout_width="0dip" android:layout_height="60dip" android:layout_weight="3" > <ImageView android:id="@+id/arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/arrow" /> <ProgressBar android:id="@+id/progress_bar" android:layout_width="30dip" android:layout_height="30dip" android:layout_centerInParent="true" android:visibility="gone" /> </RelativeLayout> <LinearLayout android:layout_width="0dip" android:layout_height="60dip" android:layout_weight="12" android:orientation="vertical" > <TextView android:id="@+id/description" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:gravity="center_horizontalbottom" android:text="@string/pull_to_refresh" /> <TextView android:id="@+id/updated_at" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:gravity="center_horizontaltop" android:text="@string/updated_at" /> </LinearLayout> </LinearLayout> </RelativeLayout> 在这个布局中,我们包含了一个下拉指示箭头,一个下拉状态文字提示,和一个上次更新的时间。当然,还有一个隐藏的旋转进度条,只有正在刷新的时候我们才会将它显示出来。 布局中所有引用的字符串我们都放在stringsmit(); new HideHeaderTask()/apk/res/android" xmlns:tools="schemas/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <com.example.pulltorefreshtest.RefreshableView android:id="@+id/refreshable_view" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/list_view" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </com.example.pulltorefreshtest.RefreshableView> </RelativeLayout> 可以看到,我们在自定义的RefreshableView中加入了一个ListView,这就意味着给这个ListView加入了下拉刷新的功能,就是这么简单! 然后我们再来看一下程序的主Activity,打开或新建MainActivity,加入如下代码: 复制代码 代码如下: public class MainActivity extends Activity { RefreshableView refreshableView; ListView listView; ArrayAdapter<String> adapter; String[] items = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); refreshableView = (RefreshableView) findViewById(R.id.refreshable_view); listView = (ListView) findViewById(R.id.list_view); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); listView.setAdapter(adapter); refreshableView.setOnRefreshListener(new PullToRefreshListener() { @Override public void onRefresh() { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } refreshableView.finishRefreshing(); } }, 0); } } 可 以看到,我们通过调用RefreshableView的setOnRefreshListener方法注册了一个监听器,当ListView正在刷新时就 会回调监听器的onRefresh方法,刷新的具体逻辑就在这里处理。而且这个方法已经自动开启了线程,可以直接在onRefresh方法中进行耗时操 作,比如向服务器请求最新数据等,在这里我就简单让线程睡眠3秒钟。另外在onRefresh方法的最后,一定要调用RefreshableView中的 finishRefreshing方法,这个方法是用来通知RefreshableView刷新结束了,不然我们的ListView将一直处于正在刷新的 状态。 不知道大家有没有注意到,setOnRefreshListener这个方法其实是有两个参数的,我们刚刚也是传入了一个不起眼的 0。那这第二个参数是用来做什么的呢?由于RefreshableView比较智能,它会自动帮我们记录上次刷新完成的时间,然后下拉的时候会在下拉头中 显示距上次刷新已过了多久。这是一个非常好用的功能,让我们不用再自己手动去记录和计算时间了,但是却存在一个问题。如果当前我们的项目中有三个地方都使 用到了下拉刷新的功能,现在在一处进行了刷新,其它两处的时间也都会跟着改变!因为刷新完成的时间是记录在配置文件中的,由于在一处刷新更改了配置文件, 导致在其它两处读取到的配置文件时间已经是更改过的了。那解决方案是什么?就是每个用到下拉刷新的地方,给setOnRefreshListener方法 的第二个参数中传入不同的id就行了。这样各处的上次刷新完成时间都是单独记录的,相互之间就不会再有影响。 好了,全部的代码都在这里了,让我们来运行一下,看看效果吧。 效果看起来还是非常不错的。我们最后再来总结一下,在项目中引入ListView下拉刷新功能只需三步: 1. 在Activity的布局文件中加入自定义的RefreshableView,并让ListView包含在其中。 2. 在Activity中调用RefreshableView的setOnRefreshListener方法注册回调接口。 3. 在onRefresh方法的最后,记得调用RefreshableView的finishRefreshing方法,通知刷新结束。 从此以后,在项目的任何地方,一分钟引入下拉刷新功能妥妥的。 好了,今天的讲解到此结束,有疑问的朋友请在下面留言。 源码下载,请点击这里

C. android上拉刷新下拉加载 通用框架怎么用

1. 关于下拉刷新

下拉刷新这种用户交互最早由twitter创始人洛伦•布里切特(Loren Brichter)发明,有理论认为,下拉刷新是一种适用于按照从新到旧的时间顺序排列feeds的应用,在这种应用场景中看完旧的内容时,用户会很自然地下拉查找更新的内容,因此下拉刷新就显得非常合理。大家可以参考这篇文章:有趣的下拉刷新,下面我贴出一个有趣的下拉刷新的案例。

2. 实现原理

上面这些例子,外观做得再好看,他的本质上都一样,那就是一个下拉刷新控件通常由以下几部分组成:

【1】Header

Header通常有下拉箭头,文字,进度条等元素,根据下拉的距离来改变它的状态,从而显示不同的样式

【2】Content

这部分是内容区域,网上有很多例子都是直接在ListView里面添加Header,但这就有局限性,因为好多情况下并不一定是用ListView来显示数据。我们把要显示内容的View放置在我们的一个容器中,如果你想实现一个用ListView显示数据的下拉刷新,你需要创建一个ListView旋转到我的容器中。我们处理这个容器的事件(down, move, up),如果向下拉,则把整个布局向下滑动,从而把header显示出来。

【3】Footer

Footer可以用来显示向上拉的箭头,自动加载更多的进度条等。

D. 怎么改变android spinner下拉列表的宽度

设置spinner下拉菜单的宽度可在布局文件中添加如下语句:
android:dropDownWidth="100dp"

其中,100dp就是下拉菜单的宽度值,单位为像素。

Spinner控件是一种列表类型的控件,它的继承关系如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<Textends android.widget.Adapter>
↳ android.widget.AbsSpinner
↳ android.widget.Spinner
android.widget.Spinner继承了android.view.ViewGroup类。

E. android中listview的下拉刷新上拉加载是怎么实现的

这是两个分开的部分。如果你是新手,先一个一个来。

我只能跟你说一下思路,具体的东西你在网上查查,不行再问我,新手的话慢慢来。

  1. 下拉刷新,获取listview的下拉时间显示header,然后调用更新数据的接口就可以了。

  2. 上啦加载,是分页获取数据,获取listview的是否拉到最底,如果拉倒最底,获取数据,让后list的数据添加获取的数据,更新adapter就可以了。


热点内容
我的世界服务器被破坏了怎么恢复 发布:2024-11-25 18:27:57 浏览:329
日常电瓶叉车配置有哪些 发布:2024-11-25 18:21:17 浏览:361
java的二分查找 发布:2024-11-25 18:21:11 浏览:23
买帕萨特选哪个配置 发布:2024-11-25 18:17:23 浏览:224
编程很挣钱吗 发布:2024-11-25 18:13:43 浏览:935
接受btc支付的香港云服务器 发布:2024-11-25 18:02:09 浏览:909
华为手机怎么密码解锁 发布:2024-11-25 17:56:34 浏览:938
服务器管理员怎么编辑别人背包 发布:2024-11-25 17:55:45 浏览:930
plc编程T 发布:2024-11-25 17:55:02 浏览:268
数据库年薪 发布:2024-11-25 17:51:18 浏览:666