国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android StickListView實(shí)現(xiàn)懸停效果

2019-12-12 06:14:26
字體:
供稿:網(wǎng)友

先看看效果圖:

實(shí)現(xiàn)思路

監(jiān)聽ListView的滑動,等目的項為列表第一個可見的ItemView時,添加一個一個的布局,產(chǎn)生懸停效果

實(shí)現(xiàn)代碼

public class CustomViewAcyivity extends BaseActivity {  Toolbar toolbar;  WindowManager mWindowManager;  WindowManager.LayoutParams mWindowLayoutParams;  TextView mTv;  boolean isShowing;//是否正在顯示  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_custom_view);    mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);    List<String> list = new ArrayList<>();    for (int i = 0; i < 30; i++) {      list.add("我是第" + (i + 1) + "個選擇項");    }    toolbar = $(R.id.toolbar);    ListView listView = $(R.id.view_list);    listView.setAdapter(new ArrayAdapter<>(this, R.layout.item_text, list));    listView.setOnScrollListener(new AbsListView.OnScrollListener() {      @Override      public void onScrollStateChanged(AbsListView view, int scrollState) {      }      @Override      public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {        if (firstVisibleItem > 8) {//滑動到目的項時,顯示懸停布局          if (!isShowing)            show();        } else {          if (isShowing)            hide();        }      }    });  }  //顯示懸停布局  public void show() {    isShowing = true;    mWindowLayoutParams = new WindowManager.LayoutParams();    mWindowLayoutParams.format = PixelFormat.TRANSLUCENT; //圖片之外的其他地方透明    mWindowLayoutParams.gravity = Gravity.TOP;    mWindowLayoutParams.y = toolbar.getHeight() - SystemUtil.getStatusHeight(this);//設(shè)置懸停布局顯示的Y坐標(biāo)    mWindowLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;    mWindowLayoutParams.height = UnitUtil.dp2px(this, 50);//設(shè)置懸停布局顯示的高度    mWindowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;    //設(shè)置懸停布局,為了看起來是懸停效果,布局的內(nèi)容要設(shè)置成與ItemView一致    mTv = new TextView(this);    mTv.setGravity(Gravity.CENTER);    mTv.setBackgroundColor(getResources().getColor(R.color.white));    mTv.setTextSize(UnitUtil.px2sp(this, UnitUtil.dp2px(this, 16)));    mTv.setText("我是第10個選擇項");    //添加懸停布局    mWindowManager.addView(mTv, mWindowLayoutParams);  }  //隱藏懸停布局  public void hide() {    if (mTv != null) {      isShowing = false;      mWindowManager.removeView(mTv);      mTv = null;    }  }}

布局代碼:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">  <include layout="@layout/view_toolbar" />  <ListView    android:id="@+id/view_list"    android:layout_width="match_parent"    android:layout_height="wrap_content" /></LinearLayout>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巩义市| 正定县| 南江县| 临邑县| 防城港市| 沾益县| 阿拉善左旗| 正蓝旗| 法库县| 克拉玛依市| 高唐县| 山西省| 阜阳市| 辽阳县| 富裕县| 泾阳县| 平邑县| 麦盖提县| 湛江市| 兴宁市| 新平| 侯马市| 松阳县| 浠水县| 长宁县| 加查县| 灵石县| 阜城县| 白银市| 天台县| 彰化市| 龙游县| 长治市| 阳西县| 措美县| 祥云县| 来宾市| 晋城| 温宿县| 廉江市| 海门市|