当前位置: 代码迷 >> Android >> Xamarin Controls 堆叠在一起
  详细解决方案

Xamarin Controls 堆叠在一起

热度:132   发布时间:2023-08-04 12:26:45.0

我是 Xamarin 的新手,我看到像这里的教程: ://docs.microsoft.com/en-us/xamarin/android/get-started/hello-android/hello-android-quickstart?tabs=vswin

并且 axml 设计器应该将控件“对齐”到您列出的其他控件的边框,但我的不是这样工作的。 它只是将它们全部堆在一起。 任何线索如何解决这个问题? 我已经搜索了一段时间,但似乎没有其他人遇到此问题。

例如,它们都只是放置在窗格的左上角,即使“正确”放置在另一个控件的底部,它们也只是对齐到左上角。

编辑:共享 XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px"
tools:gridSpec="1|8|#0093eeff|K:#ee8700ff:16,l:72,l:16,r|S:#83ee00ff:16,0,l:16,56,l:16,0,r">
<TextView
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="25px"
    android:minHeight="25px"
    android:id="@+id/textView1"
    android:layout_toLeftOf="@id/textView1"
    android:layout_toRightOf="@id/editText1" />
<TextView
    android:text="Text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/PhoneNumberText"
    android:id="@+id/textView2" />
<Button
    android:text="Translate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/PhoneNumberText"
    android:id="@+id/TranslateButton"
    android:layout_above="@id/PhoneNumberText" />
<EditText
    android:layout_height="wrap_content"
    android:layout_below="@id/PhoneNumberText"
    android:id="@+id/PhoneNumberText"
    android:layout_toLeftOf="@id/textView1"
    android:layout_marginTop="0.0dp"
    android:layout_marginBottom="0.0dp"
    android:text="1-855-xamarin"
    android:layout_width="wrap_content" />
</RelativeLayout>

Xamarin Controls 堆叠在一起

您的.axml有几个错误。

在你的textView2

<TextView
    ...
    android:id="@+id/textView1"
    android:layout_toLeftOf="@id/textView1"
    android:layout_toRightOf="@id/editText1" />
//I didn't find where you define the id -- editText1

请注意: RelativeLayout不能存在循环依赖

您想要实现的布局是什么?

类似于您在上面链接中发布的图片?

如果是这样,您可以将布局文件修改为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:text="Enter a Phoneword:"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView1" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/PhoneNumberText"
        android:text="1-855-XAMARIN" />
    <Button
        android:text="Translate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/TranslateButton" />
    <TextView
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/TranslatedPhoneWord" />
</LinearLayout>

我遇到了同样的问题并解决了阅读教程中的注释:

较新版本的 Visual Studio 包含略有不同的应用模板。

 Instead of activity_main.axml, the layout is in content_main.axml. The default layout will be a RelativeLayout. For the rest of the steps on this page to work you should change the <RelativeLayout> tag

添加另一个属性 android:orientation="vertical" 到 LinearLayout 开始标记。

进行这些更改解决了我的问题

  相关解决方案