标签: android-xml

如何使EditText小于默认值?

我需要在屏幕上显示大量的EditText控件,每个控件只允许输入0-2位数.默认的EditText大小太宽,我无法在屏幕上显示足够的EditText控件,但我一直无法弄清楚如何使它们更窄.我已经尝试了以下属性

XML:

android:maxLength="2"
android:layout_width="20dip"
android:maxWidth="20px"
android:ems="2"
android:maxEms="2"
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何使EditText小于默认值?

android android-layout android-xml

6
推荐指数
1
解决办法
2万
查看次数

自定义XML属性,没有自定义View in Fragment

我正在尝试在现有View中添加自定义XML属性

将它们添加到自定义视图并不是一件大事,但我不知道如何在"基本"视图中访问这些属性(例如TextView,LinearLayout,ImageView ......)

当涉及片段和/或图书馆项目时,这将更加困难

到目前为止,这是我的代码

海关属性定义和XML(attrs.xml和布局):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
    <attr name="jedi" format="string" />
    <attr name="rank" format="string" />
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:sw="http://schemas.android.com/apk/res-auto"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="28dp"
    android:gravity="center_horizontal"
    sw:jedi="Obiwan" />

<TextView
    android:id="@+id/rank"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="28dp"
    android:gravity="center_horizontal"
    sw:rank="Master" />
Run Code Online (Sandbox Code Playgroud)

因为我在片段上膨胀这个(所以没有onCreate与attrs arg!),尝试获得2个sw自定义属性的唯一方法是:

  1. 将自定义LayoutInflater.Factory设置为onCreateView中的Fragment LayoutInflater

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      super.onCreateView(inflater, container, savedInstanceState);
    
      LayoutInflater layoutInflater = inflater.cloneInContext(inflater.getContext());
      layoutInflater.setFactory(new StarWarsLayoutFactory());
    
      View fragmentView = layoutInflater.inflate(R.layout.jedi, container, false);
      ((TextView) fragmentView.findViewById(android.R.id.jedi)).setText("Yep");
    
      return fragmentView;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 尝试在自定义LayoutInflater.Factory上获取自定义属性:

    public class StarWarsLayoutFactory …
    Run Code Online (Sandbox Code Playgroud)

android android-xml android-fragments android-view android-custom-attributes

6
推荐指数
1
解决办法
3769
查看次数

Android卡视图在卡之间有细灰线

我有一个Android列表视图,显示卡片般的视图,正如您在此图片中看到的,我的卡片之间有一条细线:

在此输入图像描述

我该怎样摆脱灰线?

我的xml实现这个卡片视图是这样的:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="wrap_content">

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="6dp"
        android:layout_marginRight="6dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:orientation="vertical"
        android:background="@drawable/bg_card">

    <!-- Card Contents go here -->

    <TextView
            android:id="@+id/beerNameList"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
            android:id="@+id/beerBreweryNameList"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

</LinearLayout>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

bg_card.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"
               android:dither="true">

            <corners android:radius="2dp"/>

            <solid android:color="#ccc" />

        </shape>
    </item>

    <item android:bottom="2dp">
        <shape android:shape="rectangle"
               android:dither="true">

            <corners android:radius="2dp" />

            <solid android:color="@android:color/white" />

            <padding android:bottom="8dp"
                     android:left="8dp"
                     android:right="8dp"
                     android:top="8dp" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

试过分频器高度的变化,这是我的代码它没有摆脱灰线:

<LinearLayout …
Run Code Online (Sandbox Code Playgroud)

android android-xml

6
推荐指数
1
解决办法
9583
查看次数

在没有ActionBarSherlock的Actionbar ShareActionProvider上设置自定义共享图标

遇到了与此处描述的相同的问题 - 在Actionbar ShareActionProvider上设置自定义共享图标

但是
我没有使用ActionBarSherlock 我发现Sherlock主题使用了" actionModeShareDrawable ",我也可以像这样使用它,如果我不使用的话ActionBarSherlock

<style name="Theme.MyApp" parent="android:Theme.Holo">
    <item name="*android:actionModeShareDrawable">@drawable/icon</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这在我的nexus 5上运行正常,但在许多其他设备上失败
所以我的问题是,如何在不使用ActionBarSherlock的情况下更改该图标

android android-xml android-icons android-actionbar android-actionmode

6
推荐指数
1
解决办法
1962
查看次数

layout_above与layout_alignParentBottom无法正常工作

我正在尝试使用EditText创建一个登录屏幕,您可以在其中输入电子邮件,可以在忘记密码时按下TextView,然后使用按钮进入登录过程的下一步.

我目前在XML中的实现是基于您可以在ADT中自动生成的登录屏幕的示例代码:

<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".LoginActivity" >    

    <!-- Login progress -->    

    <LinearLayout
        android:id="@+id/login_status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:visibility="gone" >    

        <ProgressBar
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp" />    

        <TextView
            android:id="@+id/login_status_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:fontFamily="sans-serif-light"
            android:text="@string/login_progress_signing_in"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>    

    <!-- Login form -->    

    <ScrollView
        android:id="@+id/login_form"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >    

        <RelativeLayout
            style="@style/LoginFormContainer"
            android:layout_gravity="center"
            android:layout_centerInParent="true"
            android:layout_width="250dp"
            android:layout_height="350dp"
            android:background="@drawable/shop_background"
            android:paddingLeft="16dp"
            android:paddingRight="16dp">    

            <EditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/prompt_email"
                android:inputType="textEmailAddress"
                android:maxLines="1"
                android:singleLine="true" />
            <TextView
                android:text="Forgot password"
                android:layout_above="@id/sign_in_button"
                android:id="@+id/forgot_password"
                android:layout_centerHorizontal="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <Button
                android:id="@+id/sign_in_button"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:paddingLeft="32dp"
                android:paddingRight="32dp"
                android:background="@drawable/button_login" …
Run Code Online (Sandbox Code Playgroud)

android relativelayout android-layout android-xml

6
推荐指数
1
解决办法
6461
查看次数

为什么settings.xml布局与ActionBar/Toolbar重叠?

我正在开发一个材料设计应用程序.

添加后settings.xmlSettingsActivity.java和运行应用程序时,该活动出现这样的:

在此输入图像描述

这是SettingsActivity.java文件的代码:

public class SettingsActivity extends AppCompatActivity {

    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);

        SpannableString s = new SpannableString("Settings");
        s.setSpan(new TypefaceSpan(this, "Roboto-Medium.ttf"), 0, s.length(),
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle(s);

        // Display the fragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();

    }

    public static class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {

        public static final String SHARE_APP_PREFERENCE_KEY = "pref_key_share_app";

        @Override
        public void onCreate(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

java android android-preferences android-xml

6
推荐指数
1
解决办法
2087
查看次数

如何在color中添加渐变色。Xml

我正在使用图书馆。在其中显示库使用的活动时,我使用一种颜色来用颜色遮盖屏幕。看起来很酷。

但是由于某些原因,我决定使用渐变。我已经开发出美丽的渐变效果,如下所示

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

    <gradient
        android:angle="90"
        android:endColor="#555994"
        android:centerColor="#b5b6d2"

        android:startColor="#555994"
        android:type="linear" />

    <corners
        android:radius="0dp"/>

</shape>
Run Code Online (Sandbox Code Playgroud)

看起来不错。但是问题是我正在使用仅接受颜色或颜色资源的库。我没有其他方法可以更改,库本身正在显示活动,我只需要传递将出现在活动上的颜色即可。

现在我的问题是:

我可以直接在color.xml文件中定义渐变颜色吗?或者有什么方法可以转换成可绘制的渐变颜色文件,可以将其选为颜色。这样,库可以将我的自定义渐变颜色用作背景

请帮我 。这将是极大的帮助。

编辑1:

对于那些说我要将此添加为图像背景或其他内容的人,请允许我与您分享一些内容,以便您可以更清楚地了解情况

.withColorResource(R.color.indigo)
Run Code Online (Sandbox Code Playgroud)

在这里,我指的是Color.xml中定义的紫色,我可以将任何东西设置为背景,因为库仅提供了设置颜色的选项,如上所示。因此,我制作了能够绘制渐变色的图形,现在我想知道如何将渐变引用为颜色。

android android-xml android-color

6
推荐指数
1
解决办法
7372
查看次数

将drawable设置为android:windowBackground

我试图制作一个在任何通货膨胀之前显示的启动画面,我通过在我的SplashActivities主题中设置一个drawable到android:windowBackground来做到这一点:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
    <item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

提拉正在显示全屏位图(有一个针对横向和土地/端口的文件夹肖像),而不是一个更小的图像或图标,它看起来象下面这样:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/dark_gray"/>

    <item>
        <bitmap android:src="@drawable/splash_screen" android:gravity="center"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

由于它是全屏图像,我希望它在不拉伸的情况下填充屏幕,与使用adjustViewBounds的ImageView时的行为相同,并且scaleType设置为fitCenter时.

所以要指定我不是在寻找布局或ImageView设置,而是一个可以应用于windowBackground的drawable.我强调这一点是因为我发现的大多数搜索结果都是在应用程序启动后实现的启动画面.

android splash-screen android-xml android-theme android-drawable

6
推荐指数
1
解决办法
768
查看次数

如何在布局的一角有徽章图标

我想在布局的一角有一个徽章。我设法将徽章放入布局中,但无法在布局的一角实现。

目前,我的代码给了我:

在此处输入图片说明

我想要的是:我想将此徽章放置在布局的右上角。

我想要这样的东西:

在此处输入图片说明

Toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 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="@dimen/toolbar_height"
    android:background="@color/toolbar_color"
    android:contentInsetLeft="0dp"
    android:contentInsetStart="0dp"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="1"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textview"
            android:text="My Assignments"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_marginLeft="90dp"
            android:layout_weight="0.5"
            android:textSize="20sp"
            />

        <RelativeLayout
        android:id="@+id/bell_linearlayout1"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_gravity="center"
        android:layout_marginLeft="15dp">

        <RelativeLayout
            android:id="@+id/bell_linearlayout"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:background="#75aadb">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:layout_centerInParent="true"
                android:id="@+id/cartIconImageView"
                android:src="@drawable/notification"/>
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="25dip"
            android:layout_height="25dip"
            android:gravity="end|top|right"
            android:layout_alignParentTop="true"
            android:layout_marginBottom="100dp"
            android:layout_marginLeft="20dp">

            <TextView
                android:id="@+id/textView1"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_alignParentTop="true"
                android:background="@drawable/badge" />
        </RelativeLayout>

</RelativeLayout>
        <LinearLayout
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:background="#75aadb"
            android:id="@+id/accountinfo_layout" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-xml android-drawable

6
推荐指数
1
解决办法
1万
查看次数

Sonar不检查XML中的Android Lint错误

我在Sonarqube中检查了一个Android项目.它似乎是用Java,Android和XML插件正确设置的,我也解析了Java和XML:

在此输入图像描述

Sonar插件的My Gradle片段如下所示:

sonarqube {
  properties {
    property 'sonar.projectVersion', "$android.defaultConfig.versionName"

    property 'sonar.java.source', JavaVersion.VERSION_1_8
    property 'sonar.java.target', JavaVersion.VERSION_1_8
    property 'sonar.sourceEncoding', 'UTF-8'

    property "sonar.sources", "src/main"
    property "sonar.binaries", "build/intermediates/classes/debug"
    property "sonar.java.binaries", "build/intermediates/classes/debug"
    property "sonar.tests", "src/test/java, src/androidTest/java"
    property "sonar.java.test.binaries", "build/intermediates/classes/debug"
    property "sonar.import_unknown_files", true
}
Run Code Online (Sandbox Code Playgroud)

}

但无论如何,即使启用了'sonar.import_unknown_files',我仍然会对xml文件的"无法找到文件"发出警告:

10:36:04.768 [Task worker for ':' Thread 6] DEBUG o.s.p.a.lint.AndroidLintProcessor - Processing Issue: AllowBackup
10:36:04.769 [Task worker for ':' Thread 6] WARN  o.s.p.a.lint.AndroidLintProcessor - Unable to find file /home/me/project/app/src/main/AndroidManifest.xml to report issue
10:36:04.770 [Task worker for ':' Thread 6] DEBUG …
Run Code Online (Sandbox Code Playgroud)

android android-xml android-lint sonarqube

6
推荐指数
0
解决办法
308
查看次数