2017-08-02 55 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);