簡體   English   中英

如何從擴展活動中擴展布局?

[英]How to inflate layout from extended activity?

我從ActionBarActivity擴展了BaseActivity ,我在其中設置了活動的內容。 我使用的布局文件中有一個FrameLayout

當我擴展BaseActivity以用於例如MainActivity ,我希望MainActivity用自定義布局文件來擴展FrameLayout

我無法想出解決方案。 我總是有錯誤。 這是我走了多遠。

BaseActivity.java

public class BaseActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base);
    }
}

MainActivity.java

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
        FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
        mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
        return super.onCreateView(parent, name, context, attrs);
    }

非常感謝你的幫助! 克里斯

您的方法似乎是正確的,但在onCreate方法中添加了框架布局內的視圖。

公共類MainActivity擴展BaseActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
        mFrame.addView(LayoutInflater.from(this).inflate(R.layout.activity_nav_test, mFrame, true));
}

在這個方法中:

 @Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
    FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
    mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
    return super.onCreateView(parent, name, context, attrs);
}

您必須返回自定義視圖。 嘗試這個。 我希望它有所幫助

return mFrame;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM