向上滑动面板(Java至Kotlin)
如何在Kotlin中显示SlidingUpPanel的面板状态 我想使用库,遵循本教程: 结果应该是这样的: 教程链接中的Java代码:向上滑动面板(Java至Kotlin),java,android,kotlin,Java,Android,Kotlin,如何在Kotlin中显示SlidingUpPanel的面板状态 我想使用库,遵循本教程: 结果应该是这样的: 教程链接中的Java代码: private SlidingUpPanelLayout.PanelSlideListener onSlideListener() { return new SlidingUpPanelLayout.PanelSlideListener() { @Override public void onPanelSlide(V
private SlidingUpPanelLayout.PanelSlideListener onSlideListener() {
return new SlidingUpPanelLayout.PanelSlideListener() {
@Override
public void onPanelSlide(View view, float v) {
textView.setText("panel is sliding");
}
@Override
public void onPanelCollapsed(View view) {
textView.setText("panel Collapse");
}
@Override
public void onPanelExpanded(View view) {
textView.setText("panel expand");
}
@Override
public void onPanelAnchored(View view) {
textView.setText("panel anchored");
}
@Override
public void onPanelHidden(View view) {
textView.setText("panel is Hidden");
}
};
}
从Java到Kotlin的转换代码(我将toast放在anko库中,而不是textView中):
在Java代码中,在onCreate方法中,我有:
slidingLayout.setPanelSlideListener(onSlideListener());
这在Kotlin中似乎不起作用,因为我使用的方法是单击、拖动、悬停、按键和触摸(侦听器)
我想另一个好办法是实施
SlidingPaneLayout.PanelSlideListener
在我的课堂上,但我仍然无法让它发挥作用
找到面板在Kotlin中显示或隐藏的解决方案吗?您需要加载幻灯片布局
private lateinit var slidingLayout: SlidingUpPanelLayout
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.activity_main, container, false).also {
slidingLayout = it.findViewById(R.id.sliding_Layout)
}
}
然后你再检查一下状态
if (slidingLayout.panelState == SlidingUpPanelLayout.PanelState.HIDDEN)
您还可以定位、展开、折叠和拖动状态
如果您想在Kotlin中设置侦听器,我已经这样做了
slidingLayout.addPanelSlideListener(object : SlidingUpPanelLayout.PanelSlideListener {
override fun onPanelSlide(panel: View?, slideOffset: Float) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPanelStateChanged(panel: View?, previousState: SlidingUpPanelLayout.PanelState?, newState: SlidingUpPanelLayout.PanelState?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
方法没有指定“重写”,但它应该是编译时错误
slidingLayout.addPanelSlideListener(object : SlidingUpPanelLayout.PanelSlideListener {
override fun onPanelSlide(panel: View?, slideOffset: Float) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onPanelStateChanged(panel: View?, previousState: SlidingUpPanelLayout.PanelState?, newState: SlidingUpPanelLayout.PanelState?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})