国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

java - Mehrere Schnittstellen mit demselben Layout?
ringa_lee
ringa_lee 2017-06-20 10:06:35
0
3
1233

Angenommen, ich habe 5 verschiedene Aktivit?ten, aber das Layout und die Funktionen am unteren Rand der 5 Aktivit?ten sind gleich (andere Layouts sind unterschiedlich, z. B. die Symbolleiste). Ich würde gerne fragen, wie ich das gleiche Layout nur in die Basis schreiben kann Die Klassenaktivit?t und dann andere Aktivit?ten erben diese BaseActivity, wodurch Code nur an einer Stelle geschrieben wird, ohne dass derselbe Code in anderen Aktivit?ten geschrieben wird.
ps: Wenn diese Methode nicht erreicht werden kann, gibt es eine andere Methode?

ringa_lee
ringa_lee

ringa_lee

Antworte allen(3)
習慣沉默

你可以看下這篇,看下別人的做法,希望對你有所啟發(fā):http://www.jianshu.com/p/5bab...

僅有的幸福

/q/10...
你這個問題跟上面那個問題,應該問的異曲同工,你參考下。

某草草

首先我們定義一個Boolean 變量 用于控制共有部分是否顯示,并添加方法如下:

 private boolean isShowCommonView = true;

  public void setShowCommonView(boolean isShow) {
        isShowCommonView = isShow;
    }

然后我們復寫B(tài)aseActivity中的setContentView:如下

 @Override
    public void setContentView(@LayoutRes int layoutResID) {
        super.setContentView(layoutResID);
        if (isShowBottom) {
            ViewGroup mDecorView = (ViewGroup) getWindow().getDecorView();
            //獲得DecorView視圖層次中的FrameLayout
            //這個地方不清楚的可以看一下Activity的視圖層次圖就明白了
            mContentRootView = (FrameLayout) ((ViewGroup) mDecorView.getChildAt(0)).getChildAt(1);
            mBottomView = LayoutInflater.from(getBaseContext()).inflate(R.layout.ac_main_play_view, null);
            FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.gravity = Gravity.BOTTOM;
            mContentRootView.addView(mBottomView, layoutParams);
           //下面就是根據(jù)mBottomView.findViewById()來進行一些視圖的初始化工作
           //如設置監(jiān)聽器等 
        }
    }

最后我們在其他繼承了BaseActivity的子類的onCreate()中一定要在super.onCreate()前調(diào)用開始定義的方法setShowCommonView(Boolean)來控制共有部分是否顯示。如下

//子類的生命周期函數(shù):onCreate(Bundle)
 @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        //顯示底部視圖 true為顯示 false 為隱藏
        setShowBottom(true);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainplay);
        ButterKnife.bind(this);
        initview();
        //其他的工作。。。
    }
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage