2

これがlayout_weightを使用できる唯一の方法であり、RelativeLayoutでテキストビューを均等に配置することに十分に慣れていないため、LinearLayoutを使用しています。(私はアンドロイドが初めてです)。私はカレンダー アプリを作成していますが、7 つのテキストビューの下にテキストビューを取得する方法がわかりません。(7 つのテキストビューは曜日です)。それらはすべて同じ行に表示されます。

7日未満の最終的なテキストビューを取得するにはどうすればよいですか? この質問をstackoverflowで検索しましたが、私にとって意味のあるものや機能するものは何も見つかりませんでした。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="top" >

<TextView
    android:id="@+id/day1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/day1"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/day2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day2"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/day3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day3"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/day4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day4"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/day5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day5"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/day6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day6"
    android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
    android:id="@+id/day7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/day7"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="a text string below" 
    android:textAppearance="?android:attr/textAppearanceSmall" />


</LinearLayout>
4

6 に答える 6

8

簡略化:

<LinearLayout android:orientation="vertical">    
    <LinearLayout android:orientation="horizontal" android:layout_weight="1">
        <!-- TextView 1,2,3,4,5,6,7 here -->
    </LinearLayout>
    <TextView android:layout_weight="1"/><!-- (TextView 8) -->
</LinearLayout>
于 2012-09-01T23:19:37.960 に答える
3

RelativeLayout を使用すると、 *android:layout_below* 属性を使用できるようになります。

使用するすべてのテキストビューの重みは同じです。私の知る限り、これらの行を削除するだけでかまいません。

私があなたなら、次のような階層を考えます。

<RelativeLayout>
    <LinearLayout android:id="@+id/blabla">
        *7 textviews*
    </LinearLayout>
    <TextView>
        android:layout_below= @+id/blabla
    </TextView>
</RelativeLayout>
于 2012-09-01T23:19:09.260 に答える
1

残りのビューの下に要約を含むビューを配置するには、メインの線形レイアウトの方向を垂直に変更し、7 つの textView を水平方向の別の線形レイアウトで囲むことができます。コードは次のとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >

<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/day1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/day1"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day2"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day3"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day4"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day5"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day6"
android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
android:id="@+id/day7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day7"
android:textAppearance="?android:attr/textAppearanceSmall" />

</LinearLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a text string below" 
android:textAppearance="?android:attr/textAppearanceSmall" />


</LinearLayout>
于 2012-09-01T23:26:57.553 に答える
0

私がそれを正しく理解しているかどうかはわかりませんが、追加の Linear Layout で 1 ~ 7 日をカプセル化し、RootLayout で最後の TextView をカプセル化することを試みることができます。

例えば:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >


<LinearLayout 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >

  <!-- TextView for Days 1 to 7 in here -->

</LinearLayout>

<!-- Last TextView in here -->

</LinearLayout>

編集: Android:orientation タグを「垂直」に設定してみてください

于 2012-09-01T23:17:36.640 に答える
0

さらに簡単な説明: 方向が水平に設定された LinearLayout を使用しています。これはAndroidに「これらのアイテムはすべて一列に並べて配置する必要があります」と伝えています。必要なのは、現在持っている線形レイアウトを含む垂直線形レイアウトです。最終的な textView は、水平レイアウトではなく垂直レイアウトの子にすることができます(これは他の回答が示しているものです)。

于 2012-09-01T23:22:13.420 に答える