0

私は非常に単純な問題を抱えていますが、明らかに何か間違ったことをしています。私はこれを行うために多くの方法を試しましたが、常に何かが台無しになっています。

水平LinearLayoutがヘッダーとして機能するListViewがあります。LinearLayoutの左端と右端で、<と>を「戻るウィジェットと次のウィジェット」として機能させたい。LIST HEADER部分はそれらの間の中央に配置する必要があります。

LIST HEADER属性を作成するとandroid:layout_width="match_parent"、右側の矢印が切り取られます。LIST HEADER TextViewそれ以外の場合は、XMLファイルのの後に表示されますが、左矢印の上に配置されます。

<リストヘッダー>
リストアイテム番号1
リストアイテム番号2
リストアイテム番号3

この段階ではAndroidは初めてではありませんが、これは基本的なことのようです。どんな助けでもいただければ幸いです。Eclipseを使用していないことを付け加えておきます。

現在のXML(非常に多くのことを試した後の厄介なもの、お詫び):

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

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

  <RelativeLayout
      android:id="@+id/LeftFormulaHeaderLayout"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="left"
      android:textSize="@dimen/text_huge"
      android:id="@+id/LeftFormulaHeader"
      android:text="&lt;"/>
  </RelativeLayout>
  <TextView
      android:layout_width="200dip"
      android:layout_height="wrap_content"
      android:textSize="@dimen/text_huge"
      android:ellipsize="end"
      android:scrollHorizontally="false"
      android:singleLine="true"
      android:gravity="center"
      android:id="@+id/FormulaHeader"/>

  <RelativeLayout
      android:id="@+id/RightFormulaHeaderLayout"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
    <TextView
    android:id="@+id/RightFormulaHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:textSize="@dimen/text_huge"
    android:text="&gt;"/>
  </RelativeLayout>
</RelativeLayout>
</LinearLayout>


  <ListView
  android:id="@+id/TheList"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="#000033"
  android:layout_weight="1"
  android:drawSelectorOnTop="false" />

  <TextView
      android:id="@+id/empty_list_item"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:visibility="gone"
      android:text="@string/empty_list" />
</LinearLayout>

4

4 に答える 4

3

RelativeLayoutあなたは混乱する代わりにの助けを借りて以下のコードを使うことができますLinearLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Wrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
     android:layout_gravity="center"
      android:orientation="horizontal"
   >

         <ImageView
                android:id="@+id/icon1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher"
                android:layout_alignParentLeft="true"  />

            <ImageView
                android:id="@+id/icon2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher"
                android:layout_centerVertical="true"
                android:layout_centerInParent="true"  />

               <ImageView
                android:id="@+id/icon3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher"
                android:layout_alignParentRight="true"  />

</RelativeLayout>

OutputScreenShot:

ここに画像の説明を入力してください

このコードでさえ、ビューをレイアウトの中央に垂直に配置するのに役立ちます。ImageView2番目を変更TextViewして、テキストを表示することができます。お役に立てれば。

于 2013-02-02T04:45:41.553 に答える
2

あなたの主な問題:gravity内のテキストの配置に影響しますTextView。あなたはalignParentLeft/-RightcenterHorizontalあなたがしていることのために(gravity="center"ヘッダーをそのビューの中央に保つために残っていますが)欲しいです。

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

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_alignParentLeft="true"
  android:textSize="@dimen/text_huge"
  android:id="@+id/LeftFormulaHeader"
  android:text="&lt;"/>
<TextView
  android:layout_width="200dip"
  android:layout_height="wrap_content"
  android:textSize="@dimen/text_huge"
  android:ellipsize="end"
  android:scrollHorizontally="false"
  android:singleLine="true"
  android:layout_centerHorizontal="true"
  android:gravity="center"
  android:id="@+id/FormulaHeader"
  android:text="HEADER"/>

<TextView
android:id="@+id/RightFormulaHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textSize="@dimen/text_huge"
android:text="&gt;"/>
</RelativeLayout>
于 2013-02-02T04:43:36.233 に答える
1

ここでweight属性を操作できるはずです。

<!-- Your header layout. -->

<LinearLayout orientation="horizontal" weight_sum="1">

    <!-- Button left. -->

    <TextView layout_width="30dp" layout_height="30dp" />

    <!-- Headline. -->

    <TextView layout_width="0dp" layout_height="30dp" layout_weight="1" gravity="center" />

    <!-- Button right. -->

    <TextView layout_width="30dp" layout_height="30dp" />

</LinearLayout>

上記のコードはコピー/貼り付けでは機能しません。詳細を追加する必要があります。最も重要なことを指摘したかっただけです。

  • このソリューションでは、左右のウィジェットの幅を固定することが重要です。
  • 見出しの幅は0dpであることに注意してください...
  • ...そして1の重み!

したがって、見出しは、左右のウィジェットの2*30dpを除くすべてのラッパーの使用可能なスペースを占めることになります。

于 2013-02-02T04:40:11.340 に答える
1

以下のコードを試してみてください。いくつかの関連する変更を行いました。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <RelativeLayout
            android:id="@+id/LeftFormulaHeaderLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <TextView
                android:id="@+id/LeftFormulaHeader"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:text="&lt;"
                android:textSize="20sp" />
        </RelativeLayout>
        <TextView
            android:id="@+id/FormulaHeader"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:scrollHorizontally="false"
            android:singleLine="true"
            android:text="kajsgfuisagf"
            android:textSize="20sp" />
        <RelativeLayout
            android:id="@+id/RightFormulaHeaderLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <TextView
                android:id="@+id/RightFormulaHeader"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_alignParentRight="true"
                android:text=">"
                android:textSize="20sp" />
        </RelativeLayout>
    </RelativeLayout>
</LinearLayout>
 <ListView
    android:id="@+id/TheList"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#000033"
    android:drawSelectorOnTop="false" />
<TextView
    android:id="@+id/empty_list_item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="empty_list"
    android:visibility="gone" />

ここに画像の説明を入力してください

于 2013-02-02T05:04:28.787 に答える