groovy dependencies { implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha06' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0-rc01' } import androidx.lifecycle.ViewModel; import androidx.compose.runtime.mutableStateOf; import androidx.compose.runtime.State; public class MyViewModel extends ViewModel { private State<String> message = new mutableStateOf(""); public void setMessage(String message) { this.message.value = message; } public State<String> getMessage() { return message; } } import androidx.compose.foundation.layout.Column; import androidx.compose.material.Button; import androidx.compose.material.Text; import androidx.compose.runtime.LaunchedEffect; import androidx.compose.runtime.collectAsState; import androidx.compose.ui.platform.ComposeView; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; public class MyFragment extends Fragment { private MyViewModel viewModel; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewModel = new ViewModelProvider(this).get(MyViewModel.class); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ComposeView composeView = new ComposeView(requireContext()); composeView.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT )); composeView.setContent(() -> { Column { Text(text = viewModel.getMessage().getValue()); Button(onClick = { viewModel.setMessage("Hello, Lifecycle ViewModel Compose!"); }) { Text(text = "Update Message"); } } }); return composeView; } } viewModel = new ViewModelProvider(this).get(MyViewModel.class); ComposeView composeView = new ComposeView(requireContext()); composeView.setContent(() -> { // Compose UI components }); Text(text = viewModel.getMessage().getValue()); Button(onClick = { viewModel.setMessage("Hello, Lifecycle ViewModel Compose!"); }) { Text(text = "Update Message"); }


上一篇:
下一篇:
切换中文