我使用WebView和页面顶部的不可见菜单创建了一个应用程序(仅在双击屏幕时出现)。该菜单是一个简单的线性布局,里面有按钮。每个按钮都会启动一个不同的活动,我想这样做,这样菜单就可以在所有活动中使用。 我正在考虑创建一个主要的布局,这个布局将包含顶部和其他屏幕上的(不可见)菜单,它将为其他活动提供空间。我希望每个活动都有自己的布局。 也许我可以用顶部的菜单创建该布局,其余的空间将是线性布局。然后我会调用该线性布局中的每个活动。 这是可能的,如果是这样,怎么做? 任何帮助将不胜感激。Android - 线性布局内的活动
回答
您可以通过创建一个Activity
它在顶部有你看不见的布局和FrameLayout
集装箱您Fragments
实现这一目标
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/invisible_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
<!-- your other views here -->
</LinearLayout>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/invisible_menu" />
</RelativeLayout>
这就是MainActivity
,它可以容纳你所有的Fragments
。对于您的应用程序中使用Fragments
你应该检查Android Developers - Fragments
编辑:这里是你如何添加/通过代码替换Fragments
:
要添加首Fragment
只需拨打:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
ExampleFragment fragment = new ExampleFragment();
transaction.add(R.id.fragment_container, fragment);
transaction.commit();
// Commit the transaction
transaction.commit();
而且之后,用另一个Fragment
替换内容,则应在onClick
中执行类似操作:
// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
所以基本上你应该使用FragmentTransaction.add()
和FragmentTransaction.replace()
。
你可以给我一个关于如何在MainActivity的OnCreate内启动一个WebView片段的例子吗?谢谢 – Izak
创建一个片段并添加一个WebView作为它的内容。这与Activity – hardartcore
中的操作几乎一样。我创建了一个片段类并插入了代码,然后将该片段添加到activity_main.xml中的FrameLayout中。它工作正常,但我怎么能从MainActivity而不是从xml文件调用它?或者至少我怎么会按下按钮时调用另一个片段? – Izak
据我了解,你可以那样做:
1-创造出extneds LinearLayout中的菜单类。
2 - 创建一个类扩展活动,它内部创造
3-所有其他活动应扩展了活动,您在步骤2中
4-在onStart你应该添加菜单视图所有其他活动中创建的菜单视图屏幕
但我强烈建议您使用导航抽屉。
http://developer.android.com/design/patterns/navigation-drawer.html和
http://developer.android.com/training/implementing-navigation/nav-drawer.html
如果你想支持旧版本的Android(即,避免片段),您可以使用<include>
的菜单布局添加到每个活动。您需要在每个活动的onCreate中连接点击事件,不过您可以将此代码封装到另一个类中。
MainActivit.java
public class MainActivity(){
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main)
}
}
和activity_main.xml中:
- 1. Android动画线性布局
- 2. 框架布局内的线性布局
- 3. 如何在线性布局内开始新的活动?
- 4. Android Tabview内部的线性布局
- 5. Android线性布局
- 6. 布局Android活动
- 7. 更多线性布局的Android布局
- 8. 动画的线性布局
- 9. 线性布局 - 内用线性布局没有得到显示
- 10. 的Android线性布局与动画
- 11. Android空线性布局内容
- 12. Android中的线性布局
- 13. Android活动的xml布局
- 14. 线性布局里面android中的线性布局
- 15. 滚动线性布局超出内容
- 16. 滚动视图内的线性布局的Android难度
- 17. Android线性布局z-order动画
- 18. Android:如何在线性布局内设置网格布局?
- 19. Android线性布局错误
- 20. Android线性布局困难
- 21. 线性布局对齐 - Android
- 22. Android:线性布局新行
- 23. Android线性布局DoubleLine
- 24. 圆形线性布局android
- 25. 2布局1活动android
- 26. Android布局抽象活动
- 27. 滚动条和isScrollContainer属性不激活滚动直线布局
- 28. 重置网格布局内线性布局内的网格
- 29. 线性布局
- 30. 位置复选框动态内线性布局android
在我看来,更好的解决方案是在一个主要活动中创建这个不可见的菜单,并根据按下的按钮添加/替换碎片。这样,你看不见的菜单将只在一个活动中绘制,并且所有的片段都会有它自己的自定义布局。 – hardartcore
所有活动contentView的布局relativeLayout或FrameLayout?如果不是,则必须使用relativeLayout或framelayout。 – nurisezgin
你可以使用片段来做到这一点..创建一个片段的不可见菜单和主布局的另一个片段...更多信息请参阅http://developer.android.com/guide/components/fragments.html –