我有以下用于导航栏布局的xml文件:
navigation_bar.xml
编辑:我通过删除表格布局简化了此布局。但是直到....
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/NavigationBar" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_marginLeft="10dp"
android:src="@drawable/htc" />
<TextView
android:id="@+id/dummy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />
<Button
android:id="@+id/btn_home"
style="@style/NavigationButton"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/btn_home"
android:text="" />
</LinearLayout>
以下是我的 styles.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NavigationBar">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">45dp</item>
<item name="android:orientation">horizontal</item>
<item name="android:background">@drawable/top</item>
<item name="android:dither">true</item>
</style>
<style name="NavigationButton">
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:drawablePadding">2dp</item>
<item name="android:background">@null</item>
</style>
</resources>
此外,以下是可绘制按钮: btn_home.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/home_pressed"
android:state_focused="true"
android:state_pressed="true" />
<item android:drawable="@drawable/home_pressed"
android:state_focused="false"
android:state_pressed="true" />
<item android:drawable="@drawable/home_selected" android:state_focused="true" />
<item android:drawable="@drawable/home_default"
android:state_focused="false"
android:state_pressed="false" />
</selector>
我得到以下结果:
请参阅,主页按钮显示在顶部。但我希望它垂直居中。为此,我在<item name="android:layout_gravity">center_vertical</item>
文件上指定了styles.xml
。我也在android:layout_gravity="center_vertical|left"
上尝试了navigation_bar.xml
。但没有结果。我怎样才能将主页画面传到中心?任何帮助表示赞赏!
答案 0 :(得分:1)
您想要一个仅带图像的按钮,因此我建议您使用图像按钮而不是按钮。
此代码中的解决方案是
不要使用android:drawableTop =“@ drawable / btn_home”
改为使用
机器人:背景= “@绘制/ btn_home”
它会在垂直中心显示图像
答案 1 :(得分:0)
最后我找到了一个解决方案,虽然我觉得这不是最好的。这是我发现的解决方案。
使用值wrap_content
,fill_parent
,match_parent
在这里都没用。他们总是将图像置于我为android:layout_gravity
和android:gravity
设置的任何值的顶部。最后,指定图像的大小作为高度已经成功。
这是来自NavigationButton
styles.xml
的新样式
<style name="NavigationButton">
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">25dp</item>
<item name="android:background">@null</item>
</style>
请参阅layout_height
?现在是25dp
。此外,以下是Button
的{{1}}条目。
navigation_bar.xml
结果是
答案 2 :(得分:-1)
你会试试这个
<Button
android:id="@+id/btn_home"
style="@style/NavigationButton"
android:layout_centervertical="true"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/btn_home"
android:text="" />