以前,我的应用程序根本没有使用AppCompat,但现在我需要它,因为有一些库需要它。问题是,在我开始使用AppCompat后,某些Views
(ImageView
和SeekBar
)未显示:
更改内容我现在正在使用v7支持库(而非AppCompatActivity
)和Activity
(而不是Theme.AppCompat.Light.DarkActionBar
)中的android:Theme.Holo.Light.DarkActionBar
。
布局的hieararchy如下:
我知道这很复杂,但这是我能够实现我想要的唯一方式。 (使用了前景 FrameLayout,因此当特定的弹出对话框打开时,我可以调暗应用程序的其余部分。使用多个LinearLayouts实现网格。要获得垂直的SeekBars,我需要使用带SeekBar的FrameLayout在里面,然后旋转它。红色和蓝色“瓷砖”实际上是FButtons)
我该如何解决这个问题?我是不是因为嵌套视图太多而没有看到ImageButtons和SeekBar的原因?
答案 0 :(得分:3)
我可以重现这个问题,这太奇怪了。
但是,我设法通过将ImageViews
添加到ImageView的SeekBar
中来展示android:elevation="2dp"
和RelativeLayout
。我知道这不是解决方案,除了此属性适用于Android API> = 21。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="2dp">
// ImageViews and SeekBar here
...
</RelativeLayout>
<小时/> 另一种解决方法是在API 21之前和之上工作。 在模拟器API 18上测试。
将其放入 value/styles.xml
:
<style name="my_style">
// let this empty
</style>
将其放入 value-v21/styles.xml
:
<style name="my_style">
<item name="android:elevation">5dp</item> // above 2dp apparently...
</style>
将style="@style/my_style"
添加到每个 RelativeLayout
我在第一个答案中谈到的。
<RelativeLayout
style="@style/my_style"
android:layout_width="match_parent"
android:layout_height="match_parent">
// ImageViews and SeekBar here
...
</RelativeLayout>
在挖掘更多时,我找到了this。