如何通过片段管理器使用扩展方法

时间:2019-07-07 12:24:08

标签: android android-fragments kotlin

我正在学习如何在fragmentmanager中使用扩展方法。 但是,给出以下代码,我收到警告。

警告:

  

“使用getter方法而不是属性访问”

有人可以给我提示如何解决此问题吗?

private fun AppCompatActivity.getFragmentManagerInstance(): 
    FragmentManager? {
    return getSupportFragmentManager()//this error
}

3 个答案:

答案 0 :(得分:0)

我认为警告实际上是建议直接将getSupportFragmentManager()用作getter方法,而不是在上面做一些事情。我希望您能理解它。

答案 1 :(得分:0)

问题是Kotlin使用可读语法(约定)来访问属性。例如,可以使用ScrollView代替 <ContentPage.Content> <AbsoluteLayout LayoutFlags="All" LayoutBounds="0,0,1,1" BackgroundColor="Default"> <StackLayout AbsoluteLayout.LayoutBounds = "0,0,1,1" AbsoluteLayout.LayoutFlags = "All"> <ScrollView x:Name="ScoreScrollView" Orientation="Horizontal" ScrollX="{Binding ScoreScrollX}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" HorizontalScrollBarVisibility="Always" VerticalScrollBarVisibility="Never" BackgroundColor="White"> <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" LayoutFlags="HeightProportional" BackgroundColor="LightGray"> <AbsoluteLayout x:Name="ScoreContainer" LayoutFlags="All" LayoutBounds="0,0,1,0.75" BackgroundColor="White"> . . . . </AbsoluteLayout> <AbsoluteLayout x:Name="VisualizationContainer" LayoutFlags="All" LayoutBounds="0,1,1,0.25" BackgroundColor="Purple"> <skia:SKCanvasView x:Name="TimingViz" PaintSurface="PaintTiming" IgnorePixelScaling="True" Scale="1.0" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" BackgroundColor="White" /> </AbsoluteLayout> </AbsoluteLayout> </ScrollView> </StackLayout> <AbsoluteLayout LayoutFlags="All" LayoutBounds="0,0,1,0.25"> <AbsoluteLayout x:Name="EvaluationStickyNote" LayoutFlags="None" LayoutBounds="32,16,150,150" IsVisible="False"> . . . . </AbsoluteLayout> </AbsoluteLayout> <StackLayout IsVisible="True" Orientation="Vertical" AbsoluteLayout.LayoutFlags="WidthProportional" AbsoluteLayout.LayoutBounds="0,0,1,32" BackgroundColor="Default"> . . . . </StackLayout> </AbsoluteLayout> </ContentPage.Content> textView.getText()来获取值,而可以使用textView.setText(String)来为textView.text的文本属性设置值。另外,see因此,将您的代码替换为:

textView.text = String

答案 2 :(得分:0)

IDE建议使用supportFragmentManager而不是getSupportFragmentManager(),因为这是Kotlin中比较惯用的方式。

有关它的更多信息here