如果textview中的文字很大,则Textview会返回ImageView?

问题描述:

我已经创建了自定义的操作栏,它有左侧的后退按钮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

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

试试这个

<?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

删除android:layout_centerInParent="true"TextView

添加android:layout_toRightOf="@+id/backbutton"我认为你应该使用android:layout_centerVertical="true"对齐与ImageView

+0

试过没有工作... – virendrao 2014-10-20 12:03:59

更改文本这段代码

<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