4

テキストが複数行あると、アプリでテキストが途切れます。hdpi以下の電話でのみ発生します。どんな助けでも素晴らしいでしょう。

コード:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
                android:background="@drawable/backgroundp" >


<com.example.app.ObservableScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

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

        <View
            android:id="@+id/placeholder"
            android:layout_width="match_parent"
            android:layout_height="@dimen/sticky_height" />

        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

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

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:paddingTop="10dip" >
                </LinearLayout>

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

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:text="Man what you doing that for. Come on"
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/button02"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Play" />
                </LinearLayout>

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

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:text="Come on Man. Just Stop, no need for that."
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/button03"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Play" />
                </LinearLayout>

               Lots of the same thing over and over again. 

          Then


      </LinearLayout>
            </LinearLayout>
        </ScrollView>
    </LinearLayout>
 </com.example.app.ObservableScrollView>

 <Button
    android:id="@+id/button01"
    style="@style/Item.Sticky"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Stop" 
    android:paddingLeft="10dp"
            android:paddingRight="10dp"
                    android:paddingTop="10dp"/>

            </FrameLayout>

下にはもっと多くのものがありますが、これはあなたが本当に見る必要があるものだと思います. レイアウトの高さがコンテンツをラップする場合は問題ありません。文字の大きさだと思ったのですが、わかりませんか?

4

4 に答える 4

3

以下は受け入れられた答えです。

「本当の」答えは、デフォルトで属性をLinearLayout持つことだと思います。これは、「ベースライン」として定義されているものに合わせて子を整列させることを意味します。の場合、これはテキストの最初の行の下部です。これは、テキストが複数行ある場合にのみ問題が発生する理由を説明しています。baselineAlignedtrueTextViews

したがって、とを保持するandroid:baselineAligned="false"に対して を設定できます。LinearLayoutTextViewButton

baselineAlignedプロパティの概要については、次の記事を参照してください。Paresh Mayani による TechoTalkative の記事


weight 属性を持つ非常に多くの入れ子になった LinearLayout の代わりに RelativeLayout を使用できます (ビューの境界を測定するために複数のパスが必要になるため、パフォーマンスが低下します)。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Come on Man. Just Stop, no need for that."
        android:textSize="20sp"
        android:layout_alignParentLeft="true"
        />

    <Button
        android:id="@+id/button03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Play"/>

</RelativeLayout>

これは、私のテストではテキストが切り取られませんでした。

于 2013-08-23T11:05:10.880 に答える
0

同じ問題がありました。私が使用していたことが起こります:

android:layout_gravity="center"

それを使用しないでください。使用する:

android:gravity="center"

代わりは。

手助け:

android:layout_gravity は、ビューの外側の重力です。つまり、View が親の境界線に触れる方向を指定します。

android:gravity は、そのビューの内側の重力です。これは、その内容がどの方向に整列する必要があるかを意味します。

于 2015-04-02T17:37:45.090 に答える