📌  相关文章
📜  <butter.droid.widget.ScrimInsetsFrameLayout - Whatever Code Example(1)

📅  最后修改于: 2023-12-03 15:13:11.053000             🧑  作者: Mango

<butter.droid.widget.ScrimInsetsFrameLayout> - 一个用于应用程序中的亮度/深度调色板的自定义帧布局

<butter.droid.widget.ScrimInsetsFrameLayout> 是一个自定义帧布局,允许在应用程序中创建亮度和深度调色板,并根据内容填充尺寸进行适当的调整。

如何使用

添加以下依赖项:

implementation 'com.jakewharton:butterknife:10.0.0'

在布局文件中,将以下代码添加为根元素:

<butter.droid.widget.ScrimInsetsFrameLayout
    android:id="@+id/myFrameLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:insetForeground="#4000">
    
    <!-- 添加您的内容 -->
    
</butter.droid.widget.ScrimInsetsFrameLayout>

为 ScrimInsetsFrameLayout 设置“前景颜色”属性将提供所需的亮度/深度调色板。

代码示例

以下示例演示如何在 Recyclerview 中使用 ScrimInsetsFrameLayout:

public class MainActivity extends AppCompatActivity {
    private RecyclerView mRecyclerView;

    @BindView(R.id.scrim_frame_layout)
    ScrimInsetsFrameLayout mScrimInsetsFrameLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);

        mRecyclerView = findViewById(R.id.recycler_view);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mRecyclerView.setAdapter(new SimpleRecyclerAdapter(this));

        mScrimInsetsFrameLayout.setOnInsetsCallback(new ScrimInsetsFrameLayout.OnInsetsCallback() {
            @Override
            public void onInsetsChanged(Rect insets) {
                // 根据内容填充大小调整 ScrimInsetsFrameLayout 的边距
                mRecyclerView.setPadding(insets.left, insets.top, insets.right, insets.bottom);
            }
        });
    }
}
<butter.droid.widget.ScrimInsetsFrameLayout
    android:id="@+id/scrim_frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:insetForeground="#4000">

    <!-- 添加 RecyclerView -->
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</butter.droid.widget.ScrimInsetsFrameLayout>
注意
  • <butter.droid.widget.ScrimInsetsFrameLayout> 可以与 ConstraintLayoutCoordinatorLayout 一起使用

  • 为 ScrimInsetsFrameLayout 设置“前景颜色”属性是必需的。