我想创建一个均匀分布的儿童滑动侧面板。孩子可以动态地添加到父母。对于mdpi屏幕,每个孩子都是32x32的dp ImageButton。我想达到以下效果。Android的LinearLayout发布的儿童
案例1:几个孩子。 当布局少儿时,我希望图像按钮均匀分布。
插图与几个孩子面板:
XML布局:
<LinearLayout
android:id="@+id/toolbar"
style="@style/TabbedPanelToolbar"
android:layout_toRightOf="@id/pager"
android:orientation="vertical" >
<ImageButton
android:src="@drawable/ic_tab_info"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_tag"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_chat"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_meta"
style="@style/TabbedPanelToolbarControl" />
</LinearLayout>
样式:
<style name="TabbedPanelToolbar" parent="android:style/Widget.ListView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:background">@null</item>
</style>
<style name="TabbedPanelToolbarControl" parent="android:style/Widget.ImageButton">
<item name="android:background">@null</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:layout_weight">1</item>
</style>
案例2:许多儿童。 当有大量的孩子时,我希望布局冷凝到某一点,然后开始滚动(不再分发孩子,但开始溢出父母)。为此,我不得不添加ScrollView。问题是具有少量子项的LinearLayout将停止均匀分配它们。
插图多子女面板:
XML布局:
<ScrollView
android:id="@+id/toolbar_container"
style="@style/TabbedPanelToolbarContainer" >
<LinearLayout
android:id="@+id/toolbar"
style="@style/TabbedPanelToolbar"
android:layout_toRightOf="@id/pager"
android:orientation="vertical" >
<ImageButton
android:src="@drawable/ic_tab_info"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_tag"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_chat"
style="@style/TabbedPanelToolbarControl" />
<ImageButton
android:src="@drawable/ic_tab_meta"
style="@style/TabbedPanelToolbarControl" />
...
</LinearLayout>
</ScrollView>
样式:
<style name="TabbedPanelToolbarContainer" parent="android:style/Widget.ScrollView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:scrollbars">none</item>
<item name="android:scrollbarSize">0dp</item>
<item name="android:paddingRight">0dp</item>
<item name="android:scrollbarAlwaysDrawVerticalTrack">false</item>
<item name="android:scrollbarStyle">insideOverlay</item>
<item name="android:background">@null</item>
<item name="android:divider">@null</item>
</style>
<style name="TabbedPanelToolbar" parent="android:style/Widget.ListView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:background">@null</item>
</style>
<style name="TabbedPanelToolbarControl" parent="android:style/Widget.ImageButton">
<item name="android:background">@null</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:layout_weight">1</item>
</style>
我的问题是,是否有可能做以上,但有一个XML布局声明 - 甚至分发为少数孩子和许多人滚动。如果不是的话,是否有一种非常好的方法来处理代码(考虑小屏幕和大屏幕尺寸......孩子从24dp增长到96dp)。
我看到被清除一downvote。如果你能解释你的推理,我将不胜感激。正如我在答复中提到的,我猜对了解决方案。它似乎工作。但是,如果它的一个怪癖或不符合Android规范,我想知道。 – Vadym