最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android DynamicGrid實(shí)現(xiàn)拖曳交換位置功能

 更新時(shí)間:2018年06月28日 09:51:33   作者:zhangphil  
這篇文章主要為大家詳細(xì)介紹了Android DynamicGrid實(shí)現(xiàn)拖曳交換位置功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Android DynamicGrid是一個(gè)第三方開源項(xiàng)目,DynamicGrid在github上的項(xiàng)目主頁是:DynamicGrid

它實(shí)現(xiàn)在一個(gè)網(wǎng)格布局內(nèi),拖曳任意子view實(shí)現(xiàn)動(dòng)態(tài)的交換位置,這很類似手機(jī)的桌面,手機(jī)桌面的圖標(biāo),均可自由拖曳實(shí)現(xiàn)擺放位置的交換,如動(dòng)圖所示:

DynamicGrid使用起來簡(jiǎn)單,需要注意:

(1)最好使用完全的BaseDynamicGridAdapter構(gòu)造BaseDynamicGridAdapter構(gòu)造函數(shù),否則可能無法正常工作。
(2)通常以長(zhǎng)按模式觸發(fā)拖曳交換位置操作,所以一般在onItemLongClick里面startEditMode開始編輯。
(3)按返回鍵取消拖曳操作,代碼比較固定,重寫onBackPressed:

 @Override
  public void onBackPressed() {
 
    //此處將取消拖曳編輯模式,取消方式為按返回鍵。
    if (gridView.isEditMode()) {
      gridView.stopEditMode();
    } else {
      super.onBackPressed();
    }
  }

給出一個(gè)完整的代碼例子:

package zhangphil.app;
 
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;
 
import org.askerov.dynamicgrid.BaseDynamicGridAdapter;
import org.askerov.dynamicgrid.DynamicGridView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends Activity {
 
  private DynamicGridView gridView;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    gridView = (DynamicGridView) findViewById(R.id.dynamicgrid);
 
    ArrayList lists = new ArrayList();
    for (int i = 0; i < 100; i++) {
      lists.add("項(xiàng)目-" + i);
    }
 
    //最好以完全方式構(gòu)造,否則可能無法正常工作
    MyAdapter adapter = new MyAdapter(this, lists, 3);
    gridView.setAdapter(adapter);
 
    gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
 
        //長(zhǎng)按觸發(fā)拖曳交換位置操作。
        gridView.startEditMode(position);
 
        return true;
      }
    });
 
    gridView.setOnDragListener(new DynamicGridView.OnDragListener() {
      @Override
      public void onDragStarted(int position) {
        //Toast.makeText(getApplication(), "drag started at position " + position,Toast.LENGTH_SHORT).show();
      }
 
      @Override
      public void onDragPositionsChanged(int oldPosition, int newPosition) {
        Toast.makeText(getApplication(), String.format("from %d to %d", oldPosition, newPosition), Toast.LENGTH_SHORT).show();
      }
    });
  }
 
  @Override
  public void onBackPressed() {
 
    //此處將取消拖曳編輯模式,取消方式為按返回鍵。
    if (gridView.isEditMode()) {
      gridView.stopEditMode();
    } else {
      super.onBackPressed();
    }
  }
 
  private class MyAdapter extends BaseDynamicGridAdapter {
 
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
      View v = LayoutInflater.from(getContext()).inflate(android.R.layout.simple_list_item_1, null);
      TextView text = (TextView) v.findViewById(android.R.id.text1);
      text.setText("項(xiàng)目-" + i);
      v.setPadding(10, 10, 10, 10);
      return v;
    }
 
    public MyAdapter(Context context, List<?> items, int columnCount) {
      super(context, items, columnCount);
    }
  }
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
 
  <org.askerov.dynamicgrid.DynamicGridView
    android:id="@+id/dynamicgrid"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:numColumns="3"/>
</LinearLayout>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Dagger2新手入門與使用基礎(chǔ)教程

    Dagger2新手入門與使用基礎(chǔ)教程

    網(wǎng)上隨便搜索一下Dragger2,一大堆文章鋪天蓋地而來,但很多講的不清楚,下面這篇文章主要給大家介紹了關(guān)于Dagger2新手入門與使用基礎(chǔ)教程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-04-04
  • Android UI實(shí)現(xiàn)底部切換標(biāo)簽fragment

    Android UI實(shí)現(xiàn)底部切換標(biāo)簽fragment

    這篇文章主要為大家詳細(xì)介紹了Android UI實(shí)現(xiàn)底部切換標(biāo)簽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • android通過servlet上傳文件到服務(wù)器

    android通過servlet上傳文件到服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了android通過servlet上傳文件到服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • AndroidStudio項(xiàng)目打包成jar的簡(jiǎn)單方法

    AndroidStudio項(xiàng)目打包成jar的簡(jiǎn)單方法

    JAR(Java Archive,Java 歸檔文件)是與平臺(tái)無關(guān)的文件格式,它允許將許多文件組合成一個(gè)壓縮文件,在eclipse中我們知道如何將一個(gè)項(xiàng)目導(dǎo)出為jar包,供其它項(xiàng)目使用呢?下面通過本文給大家介紹ndroidStudio項(xiàng)目打包成jar的簡(jiǎn)單方法,需要的朋友參考下吧
    2017-11-11
  • Android自定義View事件分發(fā)流程詳解

    Android自定義View事件分發(fā)流程詳解

    這篇文章主要為大家介紹了Android自定義View事件分發(fā)流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android 仿京東側(cè)滑篩選實(shí)例代碼

    Android 仿京東側(cè)滑篩選實(shí)例代碼

    本篇文章主要介紹了Android 仿京東側(cè)滑篩選實(shí)例代碼,詳細(xì)的介紹了側(cè)滑篩選的代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-03-03
  • Android 網(wǎng)絡(luò)圖片查看顯示的實(shí)現(xiàn)方法

    Android 網(wǎng)絡(luò)圖片查看顯示的實(shí)現(xiàn)方法

    本篇文章小編為大家介紹,Android 網(wǎng)絡(luò)圖片查看顯示的實(shí)現(xiàn)方法,需要的朋友參考下
    2013-04-04
  • 詳談Android動(dòng)畫效果translate、scale、alpha、rotate

    詳談Android動(dòng)畫效果translate、scale、alpha、rotate

    下面小編就為大家?guī)硪黄斦凙ndroid動(dòng)畫效果translate、scale、alpha、rotate。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Android文件下載功能實(shí)現(xiàn)代碼

    Android文件下載功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Android文件下載功能實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android入門之Style與Theme用法實(shí)例解析

    Android入門之Style與Theme用法實(shí)例解析

    這篇文章主要介紹了Android入門之Style與Theme用法,非常實(shí)用的功能,需要的朋友可以參考下
    2014-08-08

最新評(píng)論

枝江市| 大石桥市| 吉安市| 区。| 白山市| 盐城市| 邵东县| 广宁县| 怀仁县| 涿州市| 庄河市| 襄城县| 罗山县| 永昌县| 宜君县| 凭祥市| 大化| 盘山县| 大丰市| 确山县| 南安市| 靖江市| 浑源县| 竹北市| 元谋县| 上高县| 洞口县| 准格尔旗| 珲春市| 故城县| 盐源县| 武汉市| 肃宁县| 屯昌县| 武强县| 云安县| 闸北区| 资源县| 乌什县| 肇源县| 赤水市|