我想創建一個均勻分佈的兒童滑動側面板。孩子可以動態地添加到父母。對於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