小编sag*_*gix的帖子

为EditText创建自定义背景drawable

我正在尝试将自定义drawable设置为EditText,如下所示:

除了

所以我写了这个自定义drawable:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"

        android:paddingBottom="12dp"
        android:paddingLeft="36dp"
        android:paddingRight="12dp"
        android:paddingTop="12dp">
<item>
    <shape>
        <corners android:radius="6dp"/>
        <solid android:color="@android:color/white"/>
        <stroke
            android:width="1dp"
            android:color="#BBBBBB"/>
    </shape>
</item>
<item
    android:width="32dp"
    android:gravity="left">
    <shape android:shape="rectangle">
        <size android:width="32dp"/>
        <corners
            android:bottomLeftRadius="6dp"
            android:topLeftRadius="6dp"/>
        <solid android:color="#AAAAAA"/>
    </shape>
</item>
<item android:left="8dp">
    <bitmap
        android:gravity="left"
        android:src="@drawable/ic_email"
        android:tileMode="disabled"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

预览的结果非常好(除了不同的角落尺寸,Android Studio不处理)

导致预览

但在设备中,它完全不起作用......第二项是拉伸的,不尊重宽度属性.

导致设备

我知道,我可以用9补丁来做,但我想知道是否可以使用drawables?

android android-drawable

15
推荐指数
1
解决办法
2万
查看次数

使用 compose 在 AndroidView 中使用片段时崩溃

我正在尝试撰写并尝试在撰写 AndroidView 中包含一个片段。

所以在我的情况下,我们有一个带有 ComposeView 的 AFragment,在 ComposeView 内部有一个 AndroidView,它创建一个 FragmentContainerView 并添加一个 PIFragment。

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View {
        return ComposeView(requireContext()).apply {
            setContent {
                AppTheme {
                    GalleryScreen(
                        factory = viewModelFactory,
                        remoteConfig = remoteConfig,
                        id = id,
                        currentPosition = currentPositionState,
                        onBack = { router.back(requireActivity()) },
                    ) {
                        AndroidView(
                            modifier = Modifier
                                .fillMaxWidth()
                                .wrapContentHeight(),
                            factory = {
                                FragmentContainerView(context).apply {
                                    id = R.id.pFIC
                                }
                            },
                            update = {
                                childFragmentManager.beginTransaction().replace(
                                    R.id.pFIC,
                                    PIFragment::class.java,
                                    buildArguments(
                                        id = id,
                                        origin = …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-jetpack-compose

2
推荐指数
1
解决办法
2379
查看次数