• Android实现侧边栏SlidingPaneLayout



    //主布局 1


    <?xml version="1.0" encoding="utf-8"?> 2 <android.support.v4.widget.SlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id/spl" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context="com.example.yzj.android_8_2.MainActivity"> 8 9 <fragment 10 android:id="@+id/fragment_left" 11 android:name="com.example.yzj.android_8_2.LeftFragment" 12 android:layout_width="100dp" 13 android:layout_height="match_parent"/> 14 15 <fragment 16 android:id="@+id/fragment_right" 17 android:name="com.example.yzj.android_8_2.RightFragment" 18 android:layout_width="match_parent" 19 android:layout_height="match_parent"/> 20 21 22 </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侧边栏的全部代码,测试成功的图片由于我是真机调试,就不贴了...

  • 相关阅读:
    springmvc的注解式开发
    springmvc
    spring整合Mybatis
    spring的事务管理
    注解定义增强的两个方法
    动态代理
    错题解析
    SpringMVC的基本操作
    Spring整合MyBatis
    配置事务以及事务回滚
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/yzj_SlidingPaneLayout.html
Copyright © 2020-2023  润新知