更改应用程序以使用AppCompat后意见消失

时间:2017-09-18 21:13:49

标签: android android-layout android-appcompat

以前,我的应用程序根本没有使用AppCompat,但现在我需要它,因为有一些库需要它。问题是,在我开始使用AppCompat后,某些ViewsImageViewSeekBar)未显示:

更改内容我现在正在使用v7支持库(而非AppCompatActivity)和Activity(而不是Theme.AppCompat.Light.DarkActionBar)中的android:Theme.Holo.Light.DarkActionBar

布局的hieararchy如下:

A frame layout contains a relative layout. The relative layout contains two images and another frame layout that has a seek bar. The relative layout is what goes missing.

我知道这很复杂,但这是我能够实现我想要的唯一方式。 (使用了前景 FrameLayout,因此当特定的弹出对话框打开时,我可以调暗应用程序的其余部分。使用多个LinearLayouts实现网格。要获得垂直的SeekBars,我需要使用带SeekBar的FrameLayout在里面,然后旋转它。红色和蓝色“瓷砖”实际上是FButtons

我该如何解决这个问题?我是不是因为嵌套视图太多而没有看到ImageButtons和SeekBar的原因?

1 个答案:

答案 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