我正在使用具有以下 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 中设置背景可绘制对象:
android:background="@drawable/aqua_sqaure"
在这两种情况下,我只能看到背景图像。如果我删除背景,我可以看到我的 UI 组件。我可以很好地设置背景颜色,只有图像会隐藏或覆盖 UI。
我究竟做错了什么?
任何帮助将不胜感激。谢谢
更新:这似乎与我使用的九个补丁有关。使用其他九个补丁图像时,代码按预期运行。