質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

Textviewの外枠はそのままに文字の位置だけ変えたい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,501

yojouhan

score 10

Textviewの外枠はそのままに文字の位置だけ変えたい

Adnroidのlayoutについて質問をさせて頂きます。

ひとつのグループに複数のTextViewを配置した際に、
TextView内の文字のみ位置をずらしたいのですが、
どうしても外枠ごと移動してしまいます。

どなたかこちらの設定についてご教授頂けないでしょうか。

以上、宜しくお願い致します。

■現象
  ・gravityをtopに設定した際に画像1のようになってしまう
    画像1
    https://www.dropbox.com/s/wbuvtejlourbh17/tera_pic1.png?dl=0

■期待動作
  ・gravityをtopに設定した際に画像2のようになる
    画像2
    https://www.dropbox.com/s/7ybriezl4l9yv9u/tera_pic2.png?dl=0


■問題のlayout(一部抜粋)

<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="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:orientation="vertical"><LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:id="@+id/Num1"
            android:layout_weight="5.0"
            android:height="80dp"
            android:background="@android:drawable/alert_light_frame"
            android:width="80dp"
            android:gravity="center|top" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+"
            android:id="@+id/operand"
            android:layout_weight="1.0"
            android:height="50dp"
            android:width="50dp"
            android:textStyle="bold"
            android:textColor="#0000FF"
            android:gravity="center" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:id="@+id/Num2"
            android:layout_weight="5.0"
            android:height="80dp"
            android:background="@android:drawable/alert_light_frame"
            android:width="80dp"
            android:gravity="center" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="="
            android:id="@+id/textView6"
            android:layout_weight="1.0"
            android:height="50dp"
            android:width="50dp"
            android:textStyle="bold"
            android:gravity="center" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:id="@+id/result"
            android:layout_weight="10"
            android:height="100dp"
            android:width="100dp"
            android:background="@android:drawable/alert_light_frame"
            android:gravity="center" />
    </LinearLayout>

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

0

下記のようにtableLayoutとする事で事故解決致しました。
ご回答くださった皆様、本当にありがとうございました。

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

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

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:minHeight="16dp"
                android:minWidth="80dp">

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/Num1_0_0"
                    android:background="#ffffff"
                    android:width="16dp"
                    android:height="16dp" />

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/Num1_1_0"
                    android:background="#ffffff"
                    android:width="16dp"
                    android:height="16dp" />

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/Num1_2_0"
                    android:background="#ffffff"
                    android:width="16dp"
                    android:height="16dp" />

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/Num1_3_0"
                    android:background="#ffffff"
                    android:width="16dp"
                    android:height="16dp" />

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/Num1_4_0"
                    android:background="#ffffff"
                    android:width="16dp"
                    android:height="16dp" />

            </TableRow>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

少し意味がわからないんですがid@Num1のgravityがtopも混じっているのでtopを取ったら字が真ん中にいくと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/29 14:42 編集

    ご回答ありがとうございます、
    また質問内容が分かりづらく申し訳ありません。

    添付の絵にもありますが
    枠ごと移動するのを避け、
    「枠に上付きで文字が表示される」事が
    実現したいです。
    同列の他Textviewの枠と同じ水平位置に、表示させたいです。

    以上、宜しくお願い致します。

    キャンセル

  • 2015/12/30 15:08

    であればcenter属性を取り除きcenter_horizontal属性を追加すればいいと思います

    キャンセル

  • 2015/12/31 02:56

    何度も申し訳ありません。
    ただ上記layoutですと、
    center属性を取り除き、center_horizontal属性のみにしても
    画像1のように枠の位置が崩れてしまいます。

    キャンセル

0

各textViewにandroid:layout_gravity="center"XML android:layout_gravity="center" を追加してみてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/06 23:50

    ご回答ありがとうございます!

    ご教授頂いた設定も試してみたのですが、
    全てにandroid:layout_gravity="center"のみを設定した場合
    TextViewのY軸位置は正しく並行になったのですが、
    そこからtopを指定すると同様に崩れてしまうようです…

    やはり一部だけ枠の上付きにしたい場合はtable layoutなどで別途用意するしかないでしょうか…

    キャンセル

  • 2016/01/07 00:29

    こちらで試してみたところ、LinerLayoutでgravity="center"
    各textView内でgravity="center|top"と指定したところ正常にできました

    linerLayout内のviewであるtextViewを中央に配置し、textView内の文字をtextView内で指定しているためこうなると思います

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる