我有点问题。
我正在创建自定义按钮小部件
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/barBtn"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:textColor="@color/white"
android:background="@drawable/sel_btn_bar"
android:layout_centerVertical="true"
/>
然后我将其放入RelativeLayout
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:scaleType="fitXY"
android:src="@drawable/bar"/>
<include layout="@layout/segm_btn_stores"/>
<include
layout="@layout/btn_bar"
android:layout_alignParentRight="true"/>
</RelativeLayout>
但是,在我将include
标记放入RelativeLayout
之后,对齐无效,我可以根据需要移动它。但是这种方法产生了另一个问题:按钮比在RelativeLayout
之外的更窄。我能做什么?我想在一个地方设置按钮参数。
是的,我可以添加以下这一行:android:layout_alignParentRight="true"
到Button
代码,它会起作用!
所以问题是:为什么它适用于Button
代码并且不适用于include
代码?
按钮和片段布局为there。
答案 0 :(得分:1)
我认为android:layout_centerVertical
属性(针对您的Button
布局)仅在RelativeLayout
中有效(至少在RelativeLayout.LayoutParams
文档中有记录:{{3} }),因此我不希望它工作在一个LinearLayout
。
当按钮在RelativeLayout
内比在外面变窄时,我真的不知道该说些什么。鉴于您提供的XML代码段,您的RelativeLayout
似乎是文档根目录,即将<include ... />
标记移到其外部会生成非法XML,因此编译错误(如果使用Eclipse)。
我实际上更喜欢在自定义样式中定义按钮主题,然后可以在应用程序全局样式xml中设置,例如:
<resources>
<style name="my_custom_style" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/my_button_style</item>
</style>
<style name="my_button_style" parent="@android:style/Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:background">@drawable/my_button_background</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:textColor">@color/my_custom_red_color</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">11sp</item>
</style>
</resources>
然后您在AndroidManifest.xml
中设置自定义样式,如下所示:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/application_title"
android:theme="@style/my_custom_style">
<!-- Your Activities, Services etc goes here -->
</application>
答案 1 :(得分:0)
我对你的问题很困惑。你试图从相对布局中看出你的观点?如果您进行布局,您的视图将必须属于ViewGroup。对齐不起作用,因为您的视图位于定义该属性“RelativeLayout”
的ViewGroup之外