2016-12-28 4 views
0

私のアプリには、画面サイズに応じて画面上に「自動調整」したい7つのボタンがあります。Androidスタジオ:レイアウトで複数のボタンを自動再生する方法

ので電話で、レイアウトは...このよう

[button 1] [button 2] [button 3] 
[a really long button number 4] 
[button 5] [btn 6] [btn 7] 

に見えるかもしれません...しかし、タブレット上で、すべての7つのボタンが1行で(または多分最後の2つのボタンしまうでしょう次の行にある)。

[button 1] [button 2] [button 3] [a really long button number 4] [button 5] [btn 6] [btn 7] 

私はRelativeLayoutを使用しようとしましたが、動作させることはできません。 3つのLinearLayoutsを使用でき、常に3行のボタンがあることを受け入れることができますが、あまりエレガントではありません。

この効果を得る方法はありますか? 私はかなりの検索をしましたが、私が見つけたものはほとんどが問題ではないボタンのクリックに関連しています。 ご協力いただければ幸いです! :)

EDIT

は、より多くの研究の後、私は、フラグメントは、全体的なので、私はその答えを受け入れるよ最高のソリューションです同意します。

しかし、この特定のアプリでは、UIの不動産の量を最小限に抑えるHorizo​​ntalScrollViewを使用することに決めました。以下は、私のソリューションのためのマークアップです。

<HorizontalScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 
      <!-- ### all 7 buttons here; only showing one for brevity --> 
      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"/> 
     </LinearLayout> 
    </HorizontalScrollView> 

答えて

1

Fragmentsここでは良いマークアップです。

本質的には、特定の画面密度を結びつけるために、特定のフラグメント(またはビューの一部)を定義します。

電話機では、フラグメントbutton_phone_fragment.xmlを定義できます。

タブレットの場合、フラグメントbutton_tablet_fragment.xmlを定義することができます。

次に、あなたのコード内のレイアウトを膨らませるでしょう:

inflater.inflate(R.layout.button_phone_fragment, container, false); 

Here is互いの間で交換する断片を取り巻くいくつかのより多くの情報を。

0

おそらく、「グリッドレイアウト」と呼ばれるものを探しているでしょう。あなたのための二つの最も重要な特性は、「columnSpan」と「layout_row」スマートフォンでこのコードを書く

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/GridLayout1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:columnCount="3" 
android:rowCount="3" 
android:orientation="horizontal" 
tools:context="com.inducesmile.gridlayouttutorial.MainActivity" > 
<Space /> 

<Button 
    android:id="@+id/button1" 
    android:layout_gravity="left|top" 
    android:text="@string/button_name" /> 

<Button 
    android:id="@+id/button3" 
    android:layout_gravity="left|top" 
    android:text="@string/button_name" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_column="0" 
    android:layout_gravity="left|top" 
    android:layout_row="0" 
    android:text="@string/button_name" /> 

<Button 
    android:id="@+id/button4" 
    android:layout_column="0" 
    android:layout_gravity="left|top" 
    android:layout_row="2" 
    android:text="@string/button_name" /> 

<Button 
    android:id="@+id/button5" 
    android:layout_column="1" 
    android:layout_row="2" 
    android:layout_columnSpan="2" 
    android:layout_gravity="fill" 
    android:text="@string/button_name" /> 

だろう、少し厄介に思えるかもしれません:)

関連する問題