相关疑难解决方法(0)

如何在屏幕旋转后禁用/避免片段自定义动画

我刚刚发现每次在Fragment上设置setRetainInstance(true)时它都按预期工作(片段数据被保留),但这会导致片段的自定义动画在屏幕旋转后再次执行.

有没有办法在屏幕旋转时避免/禁用这些动画?

使用以下动画创建片段:

setCustomAnimations(R.anim.slide_in_right,R.anim.slide_out_left,R.anim.slide_in_left,R.anim.slide_out_right);

所以,我不希望在屏幕旋转时再次执行那些"滑动动画".

android rotation fragment

8
推荐指数
1
解决办法
1541
查看次数

片段和onConfigurationChanged

我正在尝试用活动做一些事情,但是在一个片段中.我所做的是使用活动:

首先停止旋转设备时重新启动活动 android:configChanges="keyboardHidden|orientation|screenSize"

在我的活动中添加:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

 setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)

因此,获取活动不会重新启动,而是重新加载main.xml,以使用layout-land

现在我有一个显示viewpager的活动,其中包含三个片段.一切正常.旋转的检测在碎片中

public class FRG_map_web extends Fragment  {

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        Log.i("myLogs", "Rotation");

    }
Run Code Online (Sandbox Code Playgroud)

问题是片段不使用setContentView(R.layout.main); 这是代码:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.frg.myFragment, null); 
Run Code Online (Sandbox Code Playgroud)

我试着用:

LayoutInflater inflater = inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

view = inflater.inflate(R.layout.frg.myFragment, null); 

...

LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

view = inflater.inflate(R.layout.frg.myFragment, null); 

...

LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );

view = inflater.inflate(R.layout.frg.myFragment, …
Run Code Online (Sandbox Code Playgroud)

android android-fragments layout-inflater

7
推荐指数
3
解决办法
2万
查看次数