我也是一个刚跨越安卓小白的新人,这个是处女贴,有不对的地方欢迎大家指点,一定虚心学习!
无论干安卓的还是学安卓的都会知道,Fragment是我门Android中必不可少的。废话不多说,我直接进主题!
我们先来看两个图片,了解一下我今天要实现的是什么功能。
那么 如大家所见,就是这两个界面,我先简单介绍一下,很简单,我这个布局就是ViewPager嵌套了4个fragment。但是 当我在做到设置界面时,我发现设置界面也是一个Fragment,很本能的,我就直接在实现过程中通过找到ViewPager布局的id,然后去实现,这时候我才发现我太天真了,于是乎我琢磨了一个来小时也是在朋友的启发下,用到了一个在项目中,非常非常实用的东西,接口回调。下面是实现过程:
一、首先,来看一下布局的修改:
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_main"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<FrameLayout
android:id="@+id/setting_framelayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="gone"/>
首先我在下面多加了个FrameLayout,然后我设置visibility这个属性,把他先设为隐藏,这样就不会影响到原来的布局。
二、然后,我写了一个接口:
public interface closeViewPager {
void close();
}
为了通俗易懂,我就不这个接口命名为关闭ViewPager,我们写一个无参的方法。
三、接下来,我们在主界面中,让activity继承这个接口,并实现里面的方法:
@Override
public void close() {
myViewPager.setVisibility(View.GONE);
mSettingFragment.setVisibility(View.VISIBLE);
}
在方法中,我们将ViewPager的布局隐藏,将我们先前隐藏的FrameLyout设置为可见,这时,我们在通过ID找到Fragment的布局,然后进行加载,我们就可以实现要实现的功能了。