滑动在第二项活动中无效: 我创建了两个活动并使用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);
}
}
})
}
}
我删除了一些方法实现。当我尝试滑动时 - 没有任何反应。
答案 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
文件中进行了描述。
此致
·彼得