在标记为已解决之前,许多主题都解决了这个问题,但没有给出一个好的解决方案。
我想在自适应radio buttons
(RadioGroup
和android:layout_width="0dp"
)中创建具有居中和按比例大小的图片的android:layout_weight="1"
DON' T 工作的解决方案:
android:button="R.drawable.x"
或android:drawableStart="R.drawable.x"
及其兄弟姐妹 - 图片将偏离中心绘制,徘徊在隐形文字周围示例:
`<RadioGroup
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal|center">
<RadioButton
android:id="@+id/bt_home"
style="@style/radio_btn_style"
android:button="@drawable/radio_btn_home_selector"/>
<RadioButton
android:id="@+id/bt_discover"
style="@style/radio_btn_style"
android:button="@drawable/radio_btn_discover_selector"/>
<RadioButton
android:id="@+id/bt_my_profile"
android:button="@drawable/radio_btn_my_profile_selector"
android:checked="true"
style="@style/radio_btn_style"
/>
<RadioButton
android:layout_weight="1"
android:id="@+id/bt_new_activity"
style="@style/radio_btn_style"
android:button="@drawable/radio_btn_add_activity_selector"
/>
</RadioGroup>`
结果:单选按钮偏离中心
android:background="R.drawable.x"
- 图像将涂抹以填充背景。示例:
<RadioGroup
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal|center">
<RadioButton
android:id="@+id/bt_home"
style="@style/radio_btn_style"
android:background="@drawable/radio_btn_home_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/bt_discover"
style="@style/radio_btn_style"
android:background="@drawable/radio_btn_discover_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/bt_my_profile"
android:background="@drawable/radio_btn_my_profile_selector"
android:checked="true"
style="@style/radio_btn_style"
android:button="@null"/>
<RadioButton
android:layout_weight="1"
android:id="@+id/bt_new_activity"
style="@style/radio_btn_style"
android:background="@drawable/radio_btn_add_activity_selector"
android:button="@null"/>
</RadioGroup>
结果:background icons get smeared
RadioButton
android:layout_width="wrap_content"
- 将按钮设置为居中,但不会在RadioGroup
宽度范围内均匀分布结果:收音机按钮聚集
这是我想要的结果: radio buttons spaced out evenly, maintaining image proportion
有什么想法吗?感谢...
P.S .: 使用的风格:
`<style name="radio_btn_style">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:layout_marginStart">16dp</item>
</style>`
drawable选择器示例:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_nav_home_selected"
android:state_checked="true"/>
<item android:drawable="@drawable/ic_nav_home"/>
</selector>
答案 0 :(得分:0)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="kostas.testexample.com.testexample.MainActivity">
<RadioGroup
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/radioButton4"
style="@style/radio_btn_style"
android:button="@null"
android:layout_weight="1" />
<RadioButton
style="@style/radio_btn_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/radioButton3"
android:button="@null"
android:layout_weight="1" />
<RadioButton
style="@style/radio_btn_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/radioButton"
android:button="@null"
android:layout_weight="1" />
<RadioButton
style="@style/radio_btn_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/radioButton2"
android:button="@null"
android:layout_weight="1" />
</RadioGroup>
</LinearLayout>
然后修改你的风格,如:
<style name="radio_btn_style">
<item name="android:layout_width">match_parent</item>
<item name="android:gravity">center|center_horizontal</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">10dp</item>
<item name="android:scaleX">0.5</item>
<item name="android:scaleY">0.6</item>
<item name="android:background">@drawable/example</item>
</style>
它会给你以下结果:
希望它有所帮助!!!
答案 1 :(得分:0)
我认为你最好使用BottomNavigationView
https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html
答案 2 :(得分:0)
您可以使用此小部件
android.support.design.widget.TabLayout
希望这能解决您的问题。