2014-10-20 59 views
1

我已經創建了自定義的操作欄,它有左側的後退按鈕ImageView和中央有標題的textview。我希望標題是中心。但是,如果文本很大,它會佔用每個可用部分,並與Imageview重疊,因此ImageView偵聽器不起作用,只有在點擊時TextView才能在自定義佈局的任何位置工作。以下是截圖,以更好地解釋你。如果textview中的文字很大,則Textview會返回ImageView?

TextView if large overlaps Back ImageView and onClick of Image doesnt work

如果TextView的是大我想要的TextView是中心,並將所有字符適合可用寬度,然後用結束...

以下是我的XML代碼:

<RelativeLayout 
      android:id="@+id/actionbar" 
      android:layout_width="match_parent" 
      android:layout_height="45dip" 
      android:layout_alignParentTop="true" 
      android:alpha="0.8" 
      android:background="@android:color/black" 
      android:orientation="horizontal" > 

      <ImageView 
       android:id="@+id/backbutton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:paddingLeft="10dp" 
       android:src="@drawable/back" /> 

      <TextView 
       android:id="@+id/titleofscreen" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:maxLines="1" 
       android:textColor="#22c064" 
       android:textSize="18sp" /> 
     </RelativeLayout> 

請幫我想像TextView中心,它應該看起來像asdasdasdasd ...

+0

使用'LinearLayout'按我的答案....... – 2014-10-20 11:56:19

回答

1

check this使用只需提供重量,以便每個視圖獲得總寬度的百分比。

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/actionbar" 
android:layout_width="match_parent" 
android:layout_height="45dip" 
android:alpha="0.8" 
android:background="@android:color/black" 
android:orientation="horizontal" 
android:weightSum="2" > 

<ImageView 
    android:id="@+id/backbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.25" 
    android:paddingLeft="10dp" 
    android:src="@drawable/ic_launcher" /> 

<TextView 
    android:id="@+id/titleofscreen" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1.75" 
    android:maxLines="1" 
    android:layout_gravity="center" 
    android:paddingLeft="5dp" 
    android:text="[2014-10-20 17:05:35 - NVOLV3] Unknown error: java.lang.NullPointerException [2014-10-20 17:05:35 - NVOLV3] Unknown error: java.lang.NullPointerException" 
    android:singleLine="true" 
    android:textColor="#22c064" 
    android:textSize="18sp" /> 

    </LinearLayout> 
+0

嘗試這也仍然是重疊 – virendrao 2014-10-20 12:11:11

+0

我更新答案現在它不重疊 – 2014-10-20 12:29:33

+0

嗨,如果文字很小,它是在左側,並不是完全中心..如果大,它應該完全按照顯示的行爲,但是如果文字很小,它應該是以極左的中心爲背 – virendrao 2014-10-20 14:41:26

1

試試這個

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/rel_music" 
android:layout_width="fill_parent" 
android:layout_height="46dp" 
android:gravity="center_horizontal" 
android:orientation="horizontal" 
android:paddingRight="3dp" > 

<LinearLayout 
    android:id="@+id/back_lay" 
    android:layout_width="46dp" 
    android:layout_height="46dp" 
    android:layout_marginLeft="10dp" 
    android:background="@android:color/transparent" 
    android:gravity="center_vertical|center_horizontal" > 
    <Button 
     android:id="@+id/ib_back_music" 
     android:layout_width="30dp" 
     android:layout_height="32dp" 
     android:layout_marginLeft="5dp" 
     android:clickable="true" 
     android:gravity="center_vertical|center_horizontal|center" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginLeft="0dp" 
    android:gravity="center_vertical|center_horizontal" 
    android:paddingLeft="3dp" > 

    <TextView 
     android:id="@+id/txt_music" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:text="title title title title title title title title title title " 
     android:typeface="normal" /> 
    </LinearLayout> 

</LinearLayout> 
+0

已經嘗試過不工作.. – virendrao 2014-10-20 11:49:33

0

刪除android:layout_centerInParent="true"TextView

添加android:layout_toRightOf="@+id/backbutton"我認爲你應該使用android:layout_centerVertical="true"對齊與ImageView

+0

試過沒有工作... – virendrao 2014-10-20 12:03:59

1

更改文本這段代碼

<ImageView 
      android:id="@+id/backbutton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:paddingLeft="10dp" 
      android:src="@drawable/back" /> 

     <TextView 
      android:id="@+id/titleofscreen" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:maxLines="1" 
      android:textColor="#22c064" 
      android:textSize="18sp" /> 

 <TextView 
      android:id="@+id/titleofscreen" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:maxLines="1" 
      android:drawablePadding="5dip" 
      android:drawableLeft="@drawable/back" 
      android:textColor="#22c064" 
      android:textSize="18sp" /> 
+0

試過工作 – virendrao 2014-10-20 12:06:03

+0

@ vo12然後設置ellipsize和MAXLINES 1 – Meenal 2014-10-20 12:14:37

+0

嘗試不工作... – virendrao 2014-10-20 12:17:45