滑动在第二项活动中无效

时间:2016-11-26 21:40:22

标签: android swipe kotlin

滑动在第二项活动中无效: 我创建了两个活动并使用swipe library。 第一项活动很好,但第二项不起作用。 这里有一段代码:

 private var _swipe: Swipe = Swipe();

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_1)
    _swipe.addListener(object :SwipeListener {
         override fun onSwipedLeft(event: MotionEvent?) {
            val intent = Intent(this@FirstActivity,SecondActivity::class.java)
            startActivity(intent)
        }
    }
}

第二个活动具有相同的代码,但它命名为second_activity。 在第一个活动中滑动效果很好,它会重定向到第二个,但是然后滑动就可以了!不要离开,不要向右等等。

你能帮助我吗?

第二项活动:

   public class SecondActivity :  MvpActivity<ISecondView, SecondPresenter>   (),ISecondView  {

private var _manager: PlayerManager = PlayerManager();
/**
 * Instantiate a presenter instance

 * @return The [MvpPresenter] for this view
 */
override fun createPresenter(): SelectPresenter {
    return SecondPresenter(_manager);
}

private var _swipe: Swipe = Swipe();
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_select_2)

    val realm = Realm.getDefaultInstance()

    val players = realm.where(Player::class.java).findAll()


    val arrayList = ArrayList<String>(players.size)
    for (player in players) {

            arrayList.add(player.Name);            
    }


    val adapter = ArrayAdapter(applicationContext, android.R.layout.simple_list_item_checked, arrayList)

    val lvArr = findViewById(R.id.ListView) as ListView;
    lvArr.choiceMode= ListView.CHOICE_MODE_SINGLE;
    lvArr.adapter = adapter

    lvArr.setOnItemClickListener { adapterView: AdapterView<*>, view1: View, i: Int, l: Long ->
        //select elem
    }

    _swipe.addListener(object : SwipeListener {           
        override fun onSwipedLeft(event: MotionEvent?) {
            Toast.makeText(applicationContext, "swiped left", Toast.LENGTH_SHORT).show();
            val intent=  Intent(this@SecondfActivity,ThirdActivity::class.java);
            startActivity(intent);
        }

        override fun onSwipingLeft(event: MotionEvent?) {
            Toast.makeText(applicationContext, "swiping left", Toast.LENGTH_SHORT).show();
            val intent=  Intent(this@SecondActivity,ThirdActivity::class.java);
            startActivity(intent);
        }
}
})
}
}

我删除了一些方法实现。当我尝试滑动时 - 没有任何反应。

1 个答案:

答案 0 :(得分:1)

我是您正在使用的图书馆的作者。 您确定要覆盖dispatchTouchEvent(event)方法并在两个活动中调用swipe.dispatchTouchEvent(event)方法吗?你还没有在代码片段中提到过它,但是需要让一切都运转起来。

  override fun dispatchTouchEvent(event: MotionEvent): Boolean {
    (swipe as Swipe).dispatchTouchEvent(event)
    return super.dispatchTouchEvent(event)
  }

有关库配置的3个步骤在GitHub上的README.md文件中进行了描述。

此致

·彼得