0

画面の上部に 4 つの TextViews の行を作成しようとしています。行は、右側の TextView、左側の TextView、および右側の TextView に隣接する 2 つの TextView で構成されている必要があります。最初の 2 つの TextView では、次のコードが正常に機能します。

<TextView
android:id="@+id/textViewRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:paddingLeft="150dip"
android:text="Right TextView"
android:layout_alignParentTop="true"
/>
<TextView 
android:id="@+id/textViewLeft"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Left TextView"
android:layout_alignBaseline="@id/textViewRight"
android:paddingRight="150dip"
/>

ただし、次のような TextViews をさらに追加しようとすると:

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/textViewRight"
android:layout_alignBaseline="@id/textViewRight"
android:text="TextView L"
android:inputType="number|numberSigned"

/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textViewRight"
android:layout_alignBaseline="@id/textViewRight"
android:text="TextView R"
android:inputType="number"
    />

レイアウト プレビュー画面では何も変化せず、2 つの EditText は表示されません。

これらの最後の 2 つの EditText を表示するにはどうすればよいですか? パディングではなくマージンを使用する必要がありますか? どんな助けでも大歓迎です!

完全なレイアウトのドキュメントは次のとおりです。

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >




<TextView
android:id="@+id/textViewRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:paddingLeft="150dip"
android:text="Right TextView"
android:layout_alignParentTop="true"
/>
<TextView 
android:id="@+id/textViewLeft"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Left TextView"
android:layout_alignBaseline="@id/textViewRight"
android:paddingRight="150dip"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/textViewRight"
android:layout_alignBaseline="@id/textViewRight"
android:text="TextView L"
android:inputType="number|numberSigned"

/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textViewRight"
android:layout_alignBaseline="@id/textViewRight"
android:text="TextView R"
android:inputType="number"
    />

</RelativeLayout>
4

3 に答える 3

1

私は英語を話せませんが、私はあなたを助けることができます....この機能を使用して... main.javaで自動サイズ調整します

  public class MAIN extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_prueba_js);


     //               (POSX,POSY,WIDTH,HEIGHT, 0 TO 1....
     AutoSizeAndSetXY(TX1, 0.1,  0.1 , 0.3 , 0.3);
     AutoSizeAndSetXY(TX2, 0.5,  0.1, 0.3 , 0.3 );
     AutoSizeAndSetXY(TX3, 0.1,  0.5 , 0.3 , 0.3);
     AutoSizeAndSetXY(TX4, 0.5,  0.5, 0.3 , 0.3 );
}



      public void AutoSizeAndSetXY(View v,double posX,double posY,double width,double height){
   Display display = getWindowManager().getDefaultDisplay();

   int widthP = display.getWidth();
   int heightP = display.getHeight();
   RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
   lp.setMargins(((int)Math.round(posX*widthP)),((int)Math.round(posY*heightP)), 1, 1);
   v.setLayoutParams(lp);
   v.getLayoutParams().height=(int)(Math.round(height*heightP));
   v.getLayoutParams().width=(int)(Math.round(width*widthP));

  }
}
于 2013-08-27T23:57:19.173 に答える
0

特にタブレットではなく携帯電話の場合、これらすべての人を1つの生で追加するのに十分なスペースがあるとは思いません.

ただし、それを行う場合は、次のレイアウトのように、相対的なレイアウトを水平スクロール ビューで囲むことをお勧めします。

また、ビューを目的の場所にプッシュするためだけにパディングやマージンを使用しないでください。実際には、レイアウト設計が悪いと見なされます。

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

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

    <TextView
        android:id="@+id/textViewLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textViewRight"
        android:layout_alignParentLeft="true"
        android:text="Left TextView" />

    <EditText
        android:id="@+id/editTextLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textViewRight"
        android:layout_toRightOf="@id/textViewLeft"
        android:inputType="number|numberSigned"
        android:text="TextView L" />

    <TextView
        android:id="@+id/textViewRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/editTextLeft"
        android:text="Right TextView" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/textViewRight"
        android:layout_toRightOf="@id/textViewRight"
        android:inputType="number"
        android:text="TextView R" />
</RelativeLayout>

于 2013-08-27T23:51:57.417 に答える
0

この状況では、RelativeLayout の代わりに LinearLayout を使用します。そして、layout:weight="1" を使用して editTexts と textViews の幅を同じにすることは問題ありません。(一部のビューの重みを削除し、必要に応じて幅を wrap_content に設定できます)

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

<TextView
    android:id="@+id/textViewLeft"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    layout_weight="1"
    android:text="Left TextView"/>

<EditText
    android:id="@+id/editTextLeft"
    android:layout_width="0dp"
    android:layout_height="wrap_content" 
    layout_weight="1"
    android:inputType="number|numberSigned"
    android:text="Left EditText" />



<EditText
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    layout_weight="1"
    android:inputType="number"
    android:text="Right EditText"/>

<TextView
    android:id="@+id/textViewRight"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    layout_weight="1"
    android:text="Right TextView" />

于 2013-08-28T00:10:42.593 に答える