我解决了堆栈溢出的许多问题。我遇到了具体问题,所以是时候第一次直接问你了。
我使用ActionBarSherlock。我希望我的应用在任何设备上看起来都一样。我需要Dialogs,所以我决定使用ABS的Dialog Theme。所以我为自定义对话框创建了一个活动,即使在早期的Android版本中,我也将其设置为Holo。
这就是Android 2.3.3模拟器的外观:
https://dl.dropbox.com/u/49293039/problem2.jpg(抱歉,由于我的声誉不足,我无法将其发布为图片...)
我喜欢这个。但是当我想在ICS和JB设备/仿真器上测试它时,我看到......
https://dl.dropbox.com/u/49293039/problem1.jpg
如您所见,我的按钮未显示。让我快速浏览一下我的源代码:
@ layout / my_dialog.xml,按钮栏实现的一部分:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_margin="0dp"
android:orientation="vertical"
android:padding="0dp">
<View
style="@style/HorizontalDivider"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:orientation="horizontal"
android:padding="0dp">
<Button
android:id="@+id/cancelButton"
android:text="@string/cancel_button"
style="@style/HoloBarButton"
/>
<View
style="@style/VerticalDivider"
/>
<Button
android:id="@+id/proceedButton"
android:text="@string/add_button"
style="@style/HoloBarButton"/>
</LinearLayout>
</LinearLayout>
@值/ styles.xml
<style name="HorizontalDivider">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">?android:attr/listDivider</item>
<item name="android:layout_margin">0dp</item>
</style>
<style name="VerticalDivider">
<item name="android:layout_width">1dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">?android:attr/listDivider</item>
<item name="android:layout_margin">0dp</item>
</style>
<style name="HoloBarButton">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:layout_margin">0dp</item>
<item name="android:textColor">#ffffff</item>
<item name="android:layout_weight">50</item>
</style>
任何想法如何解决这个问题?实现两个版本的对话框(原生4.0+和旧版Android自定义)将带来更多的努力。有可能修复它或者只是我的错吗?
我试图通过将targetSdkVersion从15改为8和10(min为8)来解决它,但它没有帮助。 如果问题不明确,请询问。谢谢你的努力。
答案 0 :(得分:0)
问题在于您的按钮样式,请将HoloBarButton
更改为此
<style name="HoloBarButton">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:layout_margin">0dp</item>
<item name="android:textColor">#ffffff</item>
<item name="android:layout_weight">1</item>
</style>
答案 1 :(得分:0)
我解决了。问题是代码的一部分,我没有在那里发布。它是@ layout / my_dialog.xml中的代码。其中一个LinearLayout在布局中有match_parent:height,因此我的按钮没有LinearLayout的空间。令人惊讶的是,较旧的API没有问题。因此,请确保布局参数并且不信任在一个平台上正确显示,尝试在每个平台上运行您的应用程序,如果出现问题,请在代码中查找错误。