现在代码在新ADT中出错

时间:2012-12-22 01:06:17

标签: android

我一直在XML布局文件中使用以下代码:

<!-- Copyright (C) 2008 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- OK confirm and cancel buttons.  -->
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:divider="?android:attr/dividerHorizontal"
        android:showDividers="beginning"
        android:paddingTop="16dip">

    <LinearLayout
            style="?android:attr/buttonBarStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:measureWithLargestChild="true">

        <LinearLayout android:id="@+id/leftSpacer"
                android:layout_weight="0.25"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" />

        <Button android:id="@+id/cancel_button"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:text="@string/cancel"
                android:maxLines="2"
                style="?android:attr/buttonBarButtonStyle" />

        <Button android:id="@+id/ok_button"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_weight="1"
                android:text="@string/install"
                android:maxLines="2"
                android:filterTouchesWhenObscured="true"
                style="?android:attr/buttonBarButtonStyle" />

        <LinearLayout android:id="@+id/rightSpacer"
                android:layout_width="0dip"
                android:layout_weight="0.25"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" />

    </LinearLayout>
</LinearLayout>

这创建了无边框按钮,在ICS或更高版本或手机应用程序中安装应用程序时会看到一条模糊的线条。它曾经在Froyo和Gingerbread中运行良好,但是由于更新到最新版本的ADT,这个XML布局文件给出了编译错误,说明按钮栏样式并且只能用于API等级11及以上。

如前所述,它曾用于编译,我可以做些什么来修复它。一个hack是每当我得到编译错误是为了增加清单中的API级别,保存它然后再次降低它。现在,在我再次打开XML文件之前,ADT不会抱怨。

1 个答案:

答案 0 :(得分:2)

  

但是,由于更新到最新版本的ADT,这个XML布局文件会出现编译错误,说明按钮栏样式并且只能用于API等级11及更高版本。

这是因为those attributes仅在API级别11开始定义。

  

我能做些什么来解决它

停止在API级别10及以下版本上使用它,因为它可能会给您带来尚未见到的问题。例如,您可以将此布局移至res/layout-v11/,并在res/layout/中创建不具有这些style属性的同一布局文件的另一个版本。