gpt4 book ai didi

java - 可以使用/布局用 Java 编写的 compose View 和 Activity 吗?

转载 作者:行者123 更新时间:2023-12-04 23:59:17 26 4
gpt4 key购买 nike

Google 提供了以下示例,说明如何在 XML 中使用 ComposeView 并将其膨胀到 fragment 中。

class ExampleFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_example, container, false
).apply {
findViewById<ComposeView>(R.id.compose_view).setContent {
// In Compose world
MaterialTheme {
Text("Hello Compose!")
}
}
}
}
}
我有一个用 java 编写的 Activity ,而不是 kotlin。是否可以从 Java Activity 中使用 setContent?如果是这样,我正在为语法而苦苦挣扎。

最佳答案

是的,这是可能的。
首先你应该创建一个 AbstractComposeView 的子类。 :

class MyComposeView
@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
AbstractComposeView(context, attrs) {
@Composable
override fun Content() {
YourComposableFunction()
}
}
然后将此 View 设置为 Activity 内容...
public class MyJavaActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyComposeView(this));
}
}
您还可以在任何布局文件中声明您的 View ...
<com.example.MyComposeView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
并调用 setContentView(R.layout.your_layout_file)照常。

关于java - 可以使用/布局用 Java 编写的 compose View 和 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67423907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com