小编etr*_*sks的帖子

反转圆形狂欢动画

我想制作一个简单的动画,以尝试描述。在第一个屏幕中间有一个小圆圈,然后按它时,圆形动画将显示一个矩形按钮。我不知道我是否做到了最好的方法,但这是

circle.xml

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

    <solid android:color="@color/circle_color"></solid>

    <size
        android:width="50dp"
        android:height="50dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

我的片段的布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragments_container">

    <Button
        android:id="@+id/my_button"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:background="@color/buttons_color"
        android:visibility="invisible"
        />

    <ImageView
        android:id="@+id/circle_image"
        android:layout_gravity="center"
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:srcCompat="@drawable/circle" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

然后在我的片段里

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    activity = (MainActivity) getActivity();
    final View fragments_container = activity.findViewById(R.id.fragments_container);

    final Button button = (Button) activity.findViewById(R.id.my_button);
    final ImageView image = (ImageView) activity.findViewById(R.id.circle_image);



    image.setOnClickListener(new ImageView.OnClickListener(){
        @Override
        public void onClick(View v) {
            Animator animator …
Run Code Online (Sandbox Code Playgroud)

reverse android circularreveal

5
推荐指数
1
解决办法
772
查看次数

ScrollView的顶部隐藏在状态栏后面

我有一个FrameLayout 包含ImageView背景和LinearLayout内部ScrollView显示我需要的所有视图。简化的代码显示在下面,用于Fragment

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"     
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ink"
        android:scaleType="center"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/linear_layout_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="vertical">
        </LinearLayout>

   </ScrollView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这个片段放在FrameLayout我的activity_main.xml里面,看起来像这样

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    >
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

当项目高度的总和变得大于屏幕的高度时ScrollView,我可以LinearLayout像预期的那样滚动我拥有的所有项目。

问题是,当我滚动到的顶部时LinearLayout,最上面的“视图”隐藏在状态栏中,如下图所示:

我正在寻找的行为是这样的:

视图的顶部在状态栏下方,并且完全可见。

如何完成第二张图所示的结果?

我的styles.xml如下

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

android statusbar android-layout android-scrollview

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