Android工作室移动复选框到表格单元格的右侧

时间:2016-02-29 22:02:53

标签: android checkbox textview

我在Android studio的列表视图中创建了一个表视图(参见下面的代码),由于各种原因,我使用了文本视图和复选框作为单独的元素,而不是仅使用复选框并附加文本。问题是文本位于屏幕/表格的左侧,但复选框基本上居中,因为我希望它位于最右侧。

var netInfo = require('com.clever_apps.tinetworkinfo');

var win = Ti.UI.createWindow({exitOnClose: true});

var testLabel = Ti.UI.createLabel({
    height:"80%",
    width:"90%",
    top:0
});

var refreshButton = Ti.UI.createButton({
    title:"Refresh Data",
    height:"15%",
    bottom:"5%"
});
refreshButton.addEventListener("click", getTelephonyData);

win.add(testLabel);
win.add(refreshButton);
getTelephonyData();
win.open();


function getTelephonyData(){
    var imei = netInfo.getIMEI();
    var cellid = netInfo.getCellID();
    var lac = netInfo.getLac();
    var mnc = netInfo.getMNC();
    var mmc = netInfo.getMMC();


    var outString = "IMEI: "+imei+"\nCell ID: "+cellid+"\nLAC: "+lac+"\nMNC: "+mnc+"\nMMC: "+mmc;
    testLabel.text = outString;
}

实际上有更多这些文本视图和复选框,但你明白了。我已经尝试过使用填充和边距,但这并没有真正起作用,因为它可以在某些设备显示器上正常工作,但我必须硬编码它并不理想。我也尝试过引力功能,由于某些原因似乎没有做任何事情。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

您使用TableLayout有特殊原因吗? 如果没有,可以使用垂直LinearLayout中的RelativeLayout轻松实现所需的输出(TextViews左对齐,Checkboxes右对齐)。

您的XML将如下所示(仅包括相关部分,代码的所有其他属性将保持不变):

<ScrollView>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_alignParentLeft="true" />
        <CheckBox
            android:layout_alignParentRight="true" />
    </RelativeLayout>

</LinearLayout>
</ScrollView>

修改: 如果您想要将多个复选框彼此相邻放置,您可以通过使其位置相互引用来实现,例如

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_alignParentLeft="true" />

    <CheckBox
        android:id="@+id/checkbox1"
        android:layout_alignParentRight="true" />

    <CheckBox
        android:id="@+id/checkbox2"
        android:layout_toLeftOf="@id/checkbox1" />

    <CheckBox
        android:id="@+id/checkbox3"
        android:layout_toLeftOf="@id/checkbox2" />
</RelativeLayout>

请注意,您必须先定义最右边的复选框,然后最左边的最后一个。 鉴于复选框的宽度是相同的(在大多数情况下它们是相同的),它们将完美对齐。