2017-08-02 98 views
0

我试图在屏幕左侧显示一个TextView里面的文本和ImageView里面的图像在右边时“true”:Android的显示一半的TextView和一半的ImageView如果其他只显示TextView

<RelativeLayout 
    android:id="@+id/displayMessageCenter" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/displayMessageTop" 
    android:layout_centerHorizontal="true" 
    android:background="@android:color/white"> 
    <TextView 
     android:id="@+id/textMessageText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:textColor="#000000" 
     android:layout_weight="0.5" 
     android:layout_alignBottom="@+id/dividerId" /> 
    <ImageView 
     android:id="@+id/messagePicture" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignBottom="@+id/dividerId" 
     android:layout_weight="0.5" 
     android:gravity="right"/> 
    <View 
     android:id="@+id/dividerId" 
     android:layout_width="400dp" 
     android:layout_height="1dp" 
     android:background="#000" 
     android:layout_above="@id/leftTextGenericDialog" 
     android:gravity="center" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp"/> 
    <TextView 
     android:id="@+id/leftTextGenericDialog" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:gravity="center" 
     android:layout_centerHorizontal="true" 
     android:textColor="#FF72CCCC" 
     android:text="SEND RESPONSE" 
     android:textSize="40dp" 
     android:drawableLeft="@drawable/sendicon" 
     android:layout_above="@+id/closeButton" 
     android:onClick="sendMessage"/> 

    <ImageButton 
     android:id="@+id/closeButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="5sp" 
     android:layout_gravity="center" 
     android:background="@drawable/button_close_animation" 
     android:onClick="closeActivity" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp"/> 

</RelativeLayout> 

如果“false”隐藏图像并仅显示文本在中心的TextView。隐藏将是这样的:在需要的时候

if(true) imageView.setVisibility(View.GONE); 
else imageView.setVisibility(View.VISIBLE); 

,但我不知道如何对齐的ImageView和TextView的更容易隐藏/显示只是ImageView的。

我在Android开发是新所以请温柔:)

+0

'安卓layout_weigh'是唯一的LinearLayout ...把​​无形的视图,其中大小1×1父的中心然后把'textMessageText'到左(和左对齐父)和'messagePicture'在这个((和对齐父左))与0dp – Selvin

回答

0

当在这些情况下使用相对布局,可以使用alignParentLeft =真为TextView的和alignParentRight =真正的ImageView的,但如果你想TextView可以在ImageView可见或不可见时进行调整。使用类似

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    > 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="text" 
     android:layout_weight="0.5" 
     android:gravity="center_horizontal" 
     /> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:visibility="gone" 

     /> 

</LinearLayout> 
0

对于真正条件,您可以只设置

android:alignParentLeft="true" 

android:alignParentRight="true" 

你的TextView和ImageView的corresponsdingly。


对于条件下,可以通过编程设置规则来你的TextView。刚刚获得使用findViewById TextView的,并设置规则类似如下:

TextView tv = (TextView) findViewById(R.id.textMessageText); 
RelativeLayout.LayoutParams layoutParams = 
       (RelativeLayout.LayoutParams)tv.getLayoutParams(); 
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); 
tv.setLayoutParams(layoutParams);