我正在使用带有以下xml的DrawerLayout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<android.opengl.GLSurfaceView android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/detail_container"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end" >
</FrameLayout>
<View
android:layout_width="140dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#0000ff" />
</android.support.v4.widget.DrawerLayout>
我的想法是我的主视图是Opengl和两侧的抽屉。 “detail_container”以编程方式填充以下onCreate()(在Scala中)中的片段:
override def onCreate(bundle: Bundle) {
super.onCreate(bundle)
setContentView(R.layout.main)//important: this is how you specify the xml file that defines the layout for this activity
def setupActionBar(){
val bar = getActionBar
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE)
val mapTab = bar.newTab().setText("Map")
val detailTab = bar.newTab().setText("Detail")
mapTab.setTabListener(new MyTabsListener)
detailTab.setTabListener(new MyTabsListener)
bar.addTab(mapTab)
bar.addTab(detailTab)
bar.show()
}
def setupOglRenderer(){
findViewById(R.id.glsurfaceview) match {
case v: GLSurfaceView => {
val renderer = new OpenGlRenderer(this, R.drawable.aqua_oval)
v.setRenderer(renderer)
}
case _ =>
}
}
def setupDetailFragment(){
if(findViewById(R.id.detail_container) != null){
if(bundle == null){//don't do anything if restoring
val detailFrag = new DetailFrag
detailFrag.setArguments(getIntent.getExtras)
getSupportFragmentManager.beginTransaction().add(R.id.detail_container, detailFrag).commit()
}
}
}
setupActionBar()
setupOglRenderer()
setupDetailFragment()
}
详细信息片段类具有以下onCreateView:
override def onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle): View = {
val v = inflater.inflate(R.layout.detail_fragment, container, false)
v.setBackgroundColor(0x557B68EE)
//v.setBackgroundResource(R.drawable.aqua_sqaure)
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN)
v
}
这一切都很好,但是如果我尝试将九个补丁设置为背景,我的UI组件就不会显示。我试图在onCreateView和detail_container的xml中设置背景drawable:
android:background="@drawable/aqua_sqaure"
在这两种情况下,我只能看到背景图像。如果我删除背景,我可以看到我的UI组件。我可以很好地设置背景颜色,只有图像可以隐藏或覆盖UI。
我做错了什么?
非常感谢任何帮助。感谢
更新:这似乎与我正在使用的九个补丁有关。使用其他九个补丁图像时,代码的行为与预期一致。