2017-08-01 17 views
0

我有两个活动底栏相同。 问题是当我从活动A调用startActivity到活动B有一些眨眼,看起来不那么光滑。 例如我想要的就像活动与一个容器有两个片段和活动有底部栏,所以这不会改变底部栏。Android - 两个活动有相同的底栏

我知道活动与片段可以帮助我,但太复杂,以改变我的项目,所以是我的最后一个选择。

我发现多一个选项可以用SharedElements转换来完成,但只支持api 21(Lollipop)。

enter image description here

这是我的活动,我需要如果你想你将不得不使用片段相同的实例上底部的LinearLayout留粘,当我将其更改为活动B.

回答

2

您可以设置活动的动画:

startActivity(); 
overridePendingTransition(R.anim.hold, R.anim.fade_in); 

请参阅本答案:stackoverflow

0

。 如果不是,您可以将该LinearLayout放到两个布局文件中。 你想要哪一个?

1

你可以删除activites之间的defulat跃迁。 试试这个下yourProject/RES /价值/ styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
<item name="android:windowAnimationStyle">@null</item> 
</style> 
0

你需要创建一个布局,包括前。在layout文件夹中的bottombar.xml并创建布局。

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

如果你不想看延迟变化你需要使用片段。

要管理片段,我建议使用FragNav

与此库管理片段其非常容易,删除动画是不是解决问题的方法

0

我做了一个活动有两个片段。 在活动课,我有写commonBottomSheet验证码: - 在统筹布局

BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(findViewById(R.id.bottom_pannel_layout)); 
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); 
mBottomSheetBehavior.setBottomSheetCallback(mBottomSheetCallback); 

在活动的XML文件我已经包括以下布局: -

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

在CommonBottomSheetFragment,您可以创建你的布局。

而对于bottomSheet我的XML文件(bottom_sheet_pannel)是这样的: -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/bottom_pannel_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:behavior_peekHeight="45dp" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

    <ImageView 
     android:id="@+id/grabber_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:src="@drawable/ic_vector_slider_grabber" 
     android:tint="@color/colorTint" /> 

    <fragment 
     android:id="@+id/rf_common_details_fragment" 
     android:layout_marginTop="@dimen/margin_10" 
     android:name="com.fragment.CommonBottomSheetFragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

你可以改变bottomSheet的状态下面的回调: -

private BottomSheetBehavior.BottomSheetCallback mBottomSheetCallback = new BottomSheetBehavior.BottomSheetCallback() { 
    @Override 
    public void onStateChanged(View bottomSheet, int newState) { 
     // do what you want on state change 
    } 

    @Override 
    public void onSlide(View bottomSheet, float slideOffset) { 

    } 
};