Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 显示隐藏的工具栏动画不流畅大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我最近的一个应用程序中,当用户在列表中滚动时,我实现了隐藏/显示工具栏(Recyclerview).我的应用程序有3个片段和一个视图寻呼机来呈现它们.工具栏在滚动时适当隐藏.但是,当我更改片段(在视图页面调用onPageChange侦听器)时,我正在扩展工具栏.有时当它正在扩展时,动画是平滑的,但有时会有轻微的延迟.我不明白我做错了什么.
为了说明这一点,我录制了我的屏幕,请舔 here观看视频.

这是我的main_layout:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://scheR_568_11845@as.android.com/apk/res/android"
xmlns:app="http://scheR_568_11845@as.android.com/apk/res-auto"
xmlns:fab="http://scheR_568_11845@as.android.com/apk/res-auto"
xmlns:tools="http://scheR_568_11845@as.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.studentsins.lust.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/appBarLayouy"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:BACkground="?attr/colorPriMary"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:layout_scrollFlags="scroll|enterAlways" />

    <android.support.design.widget.TabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="@dimen/tabsHeight"
        style="@style/NavigationTab"/>


</android.support.design.widget.AppBarLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layouT_Behavior="@String/appbar_scrolling_view_behavior"/>


<include layout="@layout/content_main"/>

<com.getbase.floaTingactionbutton.FloaTingActionsMenu
    android:id="@+id/floaTingActionMenu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentright="true"
    android:layout_alignParentEnd="true"
    fab:fab_addButtonColorNormal="@color/blood_orange"
    fab:fab_addButtonColorPressed="@color/dirtyWhite"
    fab:fab_addButtonPlusIconColor="@color/dirtyWhite"
    fab:fab_addButtonSize = "normal"
    fab:fab_labelStyle="@style/menu_labels_style"
    fab:fab_labelsPosition="left"
    app:layout_anchor="@id/viewpager"
    app:layout_anchorGravity="bottom|end">

    <com.getbase.floaTingactionbutton.FloaTingActionButton
        android:id="@+id/createPlanBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        fab:fab_colorNormal="@color/blood_orange"
        fab:fab_title="Create a plan"
        fab:fab_size="normal"
        app:fab_icon="@drawable/ic_event_white_48dp"
        fab:fab_colorPressed="@color/dirtyWhite"/>

    <com.getbase.floaTingactionbutton.FloaTingActionButton
        android:id="@+id/changeStatusBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        fab:fab_colorNormal="@color/blood_orange"
        fab:fab_size="normal"
        app:fab_icon="@drawable/ic_textsms_white_48dp"
        fab:fab_title="Change status"
        fab:fab_colorPressed="@color/dirtyWhite"/>

</com.getbase.floaTingactionbutton.FloaTingActionsMenu>

这是我的Feed_fragment:

public class FeedFragment extends Fragment {
public static final String ARG_PAGE = "ARG_PAGE";
private static final String TAG = FeedFragment.class.getSimplename();
privatE int mPage;
private RecyclerView mrefreshLayout;
private Context mActivity;

public static FeedFragment newInstance(int pagE) {
    Bundle args = new Bundle();
    args.puTint(ARG_PAGE,pagE);
    FeedFragment fragment = new FeedFragment();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    mPage = getArguments().geTint(ARG_PAGE);
    mActivity = getActivity();
    Log.d("MainActivity","onCreate" + mPagE);
}

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceStatE) {
    View view = inflater.inflate(R.layout.fragment_Feed_layout,container,falsE);

    mrefreshLayout = (RecyclerView) view.findViewById(R.id.FeedCardViewList);
    linearlayoutmanager linearlayoutmanager = new linearlayoutmanager(mActivity);
    linearlayoutmanager.setOrientation(linearlayoutmanager.VERTICAL);
    mrefreshLayout.setLayoutManager(linearlayoutmanager);

    mrefreshLayout.addOnScrollListener(new RecyclerView.onScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView,int dx,int dy) {
            super.onScrolled(recyclerView,dx,dy);

            if (dy >= 0) {
                // Scrolling up.. hide the FAB
                MainActivity.mFloaTingActionsMenu.animate()
                        .setDuration(150)
                        .translationY(300);
            } else {
                // Scrolling down.. show the FAB
                MainActivity.mFloaTingActionsMenu.animate()
                        .setDuration(150)
                        .translationY(0);
            }

            Log.d(tag,"DY value: "+dy);

        }
    });
    ArrayList<String> users = new ArrayList<>();
    users.add("Georgi Koemdzhiev");
    users.add("Mariya Menova");
    users.add("Simeon Simeonov");
    users.add("Ivan Dqkov");
    users.add("Dymityr Vasilev");
    users.add("Petar Dimov");
    users.add("Stoyan Stoyanov");
    users.add("Alexander Lunar");
    users.add("Awesome Jhon");

    FeedCardAdapter adapter = new FeedCardAdapter(users,mActivity);

    mrefreshLayout.setAdapter(adapter);
    Log.d("MainActivity","onCreateView" + mPagE);
    return view;
}
}

这是我的MainActivity onCreate方法

protected void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
    editor = sharedPreferences.edit();

   Boolean isUserLoggedIn = sharedPreferences.getBoolean(Constants.user_iF_LOG_IN,falsE);
    if(!isUserLoggedIn){
        navigateToLogin();
    }

    // Get the ViewPager and set it's PagerAdapter so that it can display items
    final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new LustFragmentPagerAdapter(getSupportFragmentManager(),this));
    // Give the TabLayout the ViewPager
    final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setupWithViewPager(viewPager);

    mFloaTingActionsMenu = (FloaTingActionsMenu)findViewById(R.id.floaTingActionMenu);

    mChangeStatus = (FloaTingActionButton)findViewById(R.id.changeStatusBtn);
    mChangeStatus.setOnClickListener(new View.onClickListener() {
        @Override
        public void onClick(View view) {
            Log.d(tag,"Change Status pressed! | " + viewPager.getCurrentItem());
            mFloaTingActionsMenu.collapse();
        }
    });
    mCreatePlan = (FloaTingActionButton)findViewById(R.id.createPlanBtn);
    mCreatePlan.setOnClickListener(new View.onClickListener() {
        @Override
        public void onClick(View view) {
            Log.d(tag,"Create plan pressed! | " + viewPager.getCurrentItem());
            mFloaTingActionsMenu.collapse();
        }
    });

    viewPager.addOnPagechangelistener(new ViewPager.onPagechangelistener() {
        @Override
        public void onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {
            //Make sure that the fab is visible when scrolling the pages...
            MainActivity.mFloaTingActionsMenu.animate()
                    .setDuration(150)
                    .translationY(0);
            //show the toolbar
            expandToolbar();

        }

        @Override
        public void onPageSELEcted(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int statE) {

        }
    });


}

这是我的expandToolbar方法代码

public void expandToolbar(){
    //setExpanded(Boolean expanded,Boolean animatE)
    AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBarLayouy);
    appBarLayout.setExpanded(true,truE);
}

解决方法

我可以建议你另一种方法吗?只需显示/隐藏顶部栏,使用从GONE到VISIBLE的设置可见性,或从可见到​​显示/隐藏需要.并将android:animateLayoutChanges =“true”添加到顶栏的父级.

大佬总结

以上是大佬教程为你收集整理的android – 显示隐藏的工具栏动画不流畅全部内容,希望文章能够帮你解决android – 显示隐藏的工具栏动画不流畅所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。