//主布局 1 

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spl"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.yzj.android_8_2.MainActivity"> <fragment
android:id="@+id/fragment_left"
android:name="com.example.yzj.android_8_2.LeftFragment"
android:layout_width="100dp"
android:layout_height="match_parent"/> <fragment
android:id="@+id/fragment_right"
android:name="com.example.yzj.android_8_2.RightFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/> </android.support.v4.widget.SlidingPaneLayout>
//左边的侧边栏布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ListView
android:id="@+id/lv"
android:entries="@array/webSite"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView> </LinearLayout>
//右边的webview布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</LinearLayout>
//主类
package com.example.yzj.android_8_2; import android.support.v4.widget.SlidingPaneLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity implements LeftFragment.setWebsite{
SlidingPaneLayout spl ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
} private void init() {
spl=(SlidingPaneLayout)findViewById(R.id.spl);
spl.closePane();
changeWebsite("http://www.baidu.com");//设置初始的webview界面为baidu
}
//重写方法设置webview显示界面
@Override
public void changeWebsite(String url) {
RightFragment rf = (RightFragment) MainActivity.this.getSupportFragmentManager().findFragmentById(R.id.fragment_right);
WebView webView = rf.getView();
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
WebViewClient client = new WebViewClient();
webView.setWebViewClient(client);
webView.loadUrl(url);
}
}
package com.example.yzj.android_8_2;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView; /**
* Created by YZJ on 2016/8/2.
*/
public class LeftFragment extends Fragment{
private setWebsite website;
private ListView lv;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root=inflater.inflate(R.layout.layout_left,null);
init(root);
return root;
} private void init(View root) {
lv=(ListView)root.findViewById(R.id.lv);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> paren, View view, int position, long id) {
switch(position){
case 0:
website.changeWebsite("http://www.sina.com");
break;
case 1:
website.changeWebsite("http://www.qq.com");
break;
case 2:
website.changeWebsite("http://www.163.com");
break;
case 3:
website.changeWebsite("http://www.taobao.com");
break;
}
}
});
} @Override
public void onAttach(Context context) {
super.onAttach(context);
website=(setWebsite)context;//把activity向下转型成我们定义的接口,注意这里要强转
}
//创建回调接口,来回调mainactivity
public interface setWebsite{
public void changeWebsite(String url);
}
}
package com.example.yzj.android_8_2;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView; /**
* Created by YZJ on 2016/8/2.
*/
public class RightFragment extends Fragment{
private WebView wv;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root=inflater.inflate(R.layout.layout_right,null);
init(root);
return root;
} private void init(View root) {
wv=(WebView)root.findViewById(R.id.wv);
} public WebView getView(){//返回rightfragment的webview
return wv;
}
}

  以上就是android侧边栏的全部代码,测试成功的图片由于我是真机调试,就不贴了...

Android实现侧边栏SlidingPaneLayout的更多相关文章

  1. android DrawerLayout 侧边栏实现

    现在实现侧边栏比较简单了,官方提供的DrawerLayout可以很方便实现. 主要实现方法是:用DrawerLayout 作为界面根控件.在DrawerLayout里面第一个View为当前界面主内容: ...

  2. Android中禁止SlidingPaneLayout的侧滑功能

    Android中使用android.support.v4.widget.SlidingPaneLayout实现侧滑功能的时候,可能出现滑动屏幕时与SlidingPaneLayout的侧滑发生冲突,查看 ...

  3. Android App 侧边栏菜单的简单实现

    效果图 Layout 注意事项 想要实现侧边栏,需要配合使用DrawerLayout.因为会用到嵌套布局,所以根布局不能是 ConstraintLayout,最好使用 LinearLayout 布局. ...

  4. 利用SlidingPaneLayout实现侧滑

    利用SlidingPaneLayout实验仿QQ侧滑效果 1.效果图            2.布局文件 <?xml version="1.0" encoding=" ...

  5. android侧滑菜单笔记

    一.SlidingPaneLayout v4包下的控件,使用简单,功能简洁.官方文档明确说明该控件只能左侧滑动.使用如下: <android.support.v4.widget.SlidingP ...

  6. 我的Android进阶之旅------>解决Android Studio编译后安装apk报错:The APK file does not exist on disk

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  7. React Native项目组织结构介绍

    代码组织: 目录结构: . ├── components //组成应用的各个组件 │   ├── Routers.android.js //每个组件若实现不一样,分为android的实现和ios的实现 ...

  8. Android UI开发第三十四篇——SlidingPaneLayout

    SlidingPaneLayout也是系统支持的高级控件,是Android团对在2013 google IO大会期间更新的Support库(Version 13)中新加入的重要的功能.它支持左右滑动菜 ...

  9. Android 侧边栏(使用Support Library 4提供的扩展组件)

    本文转自:http://www.apkbus.com/android-117148-1-1.html 写在前面的话:接触Android已经有一段时间了,自己积累的东西也算蛮多的.总结以往的经验,凡是关 ...

随机推荐

  1. How To Use Goto?

    看到,网上很多人对于goto的询问, 因为本身在工作中经常使用到,所以写下此文, 如有错误, 请指出. 本人写博文的时候主要从事C++工作 对于goto的态度,本人目前成长如下: 学生时代 老师课堂上 ...

  2. MongoDB 数据分发

    在MongoDB(版本 3.2.9)中,数据的分发是指将collection的数据拆分成块(chunk),分布到不同的分片(shard)上,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分 ...

  3. lua解析脚本过程中的关键数据结构介绍

    在这一篇文章中我先来介绍一下lua解析一个脚本文件时要用到的一些关键的数据结构,为将来的一系列代码分析打下一个良好的基础.在整个过程中,比较重要的几个源码文件分别是:llex.h,lparse.h.l ...

  4. VS2015签名丢失解决办法

    废话少说,直接上问题和解决办法, 问题:VS2015安装后运行程序会发现这个问题 解决办法 1.下载SignTool.exe签名文件 2.将签名文件放入 C:\Program Files (x86)\ ...

  5. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Software Protector序列号生成组件.今天就通过一篇简单的文章来预览一下其强大的功 ...

  6. 感恩回馈,新鲜出炉的《ASP.NET MVC 5框架揭秘》免费赠送

    上次针对<ASP.NET Web API 2框架揭秘>举办了一次评论赠书活动,很多人问我相同的活动要不要针对<ASP.NET MVC 5框架揭秘>(阅读样章)再来一次,为此我向 ...

  7. 创建第一个 vlan network "vlan100" - 每天5分钟玩转 OpenStack(94)

    上一节我们在 ML2 配置中 enable 了 vlan network,今天将创建 vlan100 并讨论底层网络变化. 打开菜单 Admin -> Networks,点击 “Create N ...

  8. EntityFramework之Log(五)

    关于日志 属性日志 DbContext.Database.Log 属性被设置为一个委托,该委托能接受带有一个字符串参数的任何方法,最主要的是,通过设置它到 TextWriter 的 Write 方法将 ...

  9. SubSonic3.0.0.4.2源码包与调用Dll

    ================================================================ 名    称:SubSonic插件版    本:3.0.0.4.2最后 ...

  10. android 真机调试出现错误 INSTALL_FAILED_INSUFFICIENT_STORAGE 的解决方法。

    关于这个神奇的 内存不够错误的通常解决方法,网上大把,建议大家在尝试过了网上的方法后再来尝试下我的这种方法. 编译工具: android studio 测试真机:米 2 调试的时候出现:INSTALL ...