Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向上滑动面板(Java至Kotlin)_Java_Android_Kotlin - Fatal编程技术网

向上滑动面板(Java至Kotlin)

向上滑动面板(Java至Kotlin),java,android,kotlin,Java,Android,Kotlin,如何在Kotlin中显示SlidingUpPanel的面板状态 我想使用库,遵循本教程: 结果应该是这样的: 教程链接中的Java代码: private SlidingUpPanelLayout.PanelSlideListener onSlideListener() { return new SlidingUpPanelLayout.PanelSlideListener() { @Override public void onPanelSlide(V

如何在Kotlin中显示SlidingUpPanel的面板状态

我想使用库,遵循本教程:

结果应该是这样的:

教程链接中的Java代码:

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.
        }
    })