2012-02-19 10 views
0

私はアンドロイドのプログラミングとレイアウトに新しい、私はテキストとアイコンでカスタムリストビューを作成に固執した。私はいくつかの例をチェックして試してみましたが、自分のリストビューを作成しようとしました。私は今、私が望むようにこれを動作させるために私が何をすべきか分かりません。Androidカスタムリストビューrelativelayout位置付け問題

ここに私の現在の結果(1行目)、2行目は - 私の醜いMsPaint版 - どのようにしたいのですか? magnify-glassアイコンに達したときに切り取られるテキスト。その後に2つのアイコンが表示されます。

Current and wanted state

私はこれを達成するためにかなりの数の異なるレイアウトを試みたが、私が言われてきたし、それらはより良いパフォーマンスと他の鮫(私ができる」を持っているとして、私は、相対的なレイアウトを使用する必要があることを読んで今思い出してください)。

[編集] 更新と要約された問題:私はもう少し困惑していますが、私の本当の問題は、テキストビューでは、拡大鏡。つまり、それらのアイコンのスペースを「予約」せずに、使用可能なスペースをすべて取り、拡大アイコンのアイコンを残します。 (私は:)それは愚かな名前を知っている)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/LayoutWrap"> 

    <ListView 
     android:id="@+id/my_listview" 
     style="@style/List"/> 
</LinearLayout> 

「my_listview」の「XMLファイル」:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
style="@style/myListItem" 
android:id="@+id/list"> 


    <TextView 
    android:id="@+id/my_item_title" 
    style="@style/myItemName" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@+id/my_item_detail" 
    android:text="Name" /> 



    <ImageView 
     android:id="@id/my_item_detail" 
     style="@style/myImageItem" 

     android:src="@drawable/ic_my_detail_unselected" 
     android:contentDescription="Detail" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@+id/my_item_delete" 
    /> 


    <ImageView 
     android:id="@id/my_item_delete" 
     style="@style/myImageItem" 

     android:src="@drawable/ic_my_delete_unselected" 
     android:text="Delete my" 
     android:layout_alignParentTop="true" 
    /> 

     <ImageView 
     android:id="@+id/my_item_copy" 
     style="@style/myImageItem" 

     android:src="@drawable/ic_my_update_unselected" 
     android:text="Copy my" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@id/my_item_delete" 
    /> 

</RelativeLayout> 
ここでは単に私は、画面を起動したレイアウトである私の最初のファイルは、です

私の 'styles.xml'には、特別なプロパティを持たないスタイルが定義されています。私は興味深いのは、特定のtextSize(おそらく?android:LargeAppearanceなど)を持つテキストのスタイルを設定し、それを1行に強制したことだけです。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
     <style name="WrapBoth"> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
    </style> 

    <style name="WrapHeight"> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
    </style> 

     <style name="LayoutWrap"> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">fill_parent</item> 
     <item name="android:orientation">vertical</item>   
    </style> 

      <style name="List" parent="style/WrapHeight"/> 

    <style name="myListItem"> 
     <item name="android:padding">5dp</item> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">?android:attr/listPreferredItemHeight</item> 
    </style> 

    <style name="myItemName" parent="style/WrapBoth"> 
     <item name="android:textSize">11sp</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:ellipsize">end</item> 
     <item name="android:lines">1</item> 
     <item name="android:scrollHorizontally">true</item> 
    </style> 

    <style name="myImageItem" parent="style/WrapBoth"> 

    </style> 
</resources> 

私は既に事前に助けていただきありがとうございます!一方、私は私の「buttonListeners」に取り組むだろう、私はこれらのトラブルの多くのことを期待しないでください:)

答えて

2

私はアンドロイドに、より慣れて、どのようにした後、私は、最終的にこの問題を解決することができましたレイアウトは機能します。そして、おそらく他の誰かが同じ問題につまずく可能性があり、このうちのいくつかの有用な情報を得る可能性があります。この問題を解決するために

、私の中に3枚の画像を持っていたrelativelayoutを作成し、私は彼らがなりたいと画像を配置します。私は、同じまま、

<TextView 
    android:id="@+id/item_title" 
    style="@style/ItemName" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:text="@string/dummy_title" 
    android:layout_toLeftOf="@+id/options"/> 

私が使用されているスタイル:、私は次のプロパティそれを与えた

<RelativeLayout 
     android:id="@id/options" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     > 

そして、私は左に滞在したかったのTextView:私は私のrelativelayout次のプロパティを与えました。 この方法では、レイアウトは3つのイメージにどのスペースを予約するべきかを知っています。

それはすべてのビット数学のようだ、カッコ内のものは最初に行く、とAndroidで、レイアウト内のものは最初:)を行きます。

関連する問題